[Avocado-devel] Avocado 101 questions

Lukáš Doktor ldoktor at redhat.com
Fri Feb 8 16:09:37 UTC 2019


Dne 06. 02. 19 v 7:22 Fajun Chen napsal(a):
> Hi Lukas,
> 
> As an experiment, I made the following changes to avocado/core/runner.py:
> @@ -319,7 +319,7 @@
>          # be able to read from the tty, and would hang. Let's replace
>          # STDIN fd (0), with the same fd previously set by
>          # `multiprocessing.Process()`
> -        os.dup2(sys.stdin.fileno(), 0)
> +        # os.dup2(sys.stdin.fileno(), 0)
> 
>          instance = loader.load_test(test_factory)
>          if instance.runner_queue is None:
> @@ -349,7 +349,10 @@
>                          TEST_LOG.info('  %s: %s', source, location)
>                  TEST_LOG.info('')
>          try:
> +            sys.stdin = open(0)
>              instance.run_avocado()
> +            sys.stdin.close()
> +            sys.stdin = open(os.devnull)
>          finally:
>              try:
>                  state = instance.get_state()
> 
> I can interact with the test manually with the change. Understood the risk
> of keeping stdin fd open, but will it be manageable if our tests don't read
> from tty unless it's warranted?
> 
> Thanks,
> Fajun

Hello Fajun,

sure, this will work for now (although failures are not handled), anyway if you decide to use Avocado I'd suggest the RFC or at least to open a discussion to have a proper implementation. I can imagine something like:

```
avocado run interactive.py --enable-stdin
JOB ID     : 8e9a0a9011d3e4b31d0fee5c2f727e32cf08ec7a
JOB LOG    : /home/medic/avocado/job-results/job-2019-02-08T17.05-8e9a0a9/job.log
 (1/1) interactive.py:InteractiveTest.test:
Waiting on stdin on localhost:12345 \
PASS (75.75 s)
RESULTS    : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
JOB TIME   : 75.88 s
JOB HTML   : /home/medic/avocado/job-results/job-2019-02-08T17.05-8e9a0a9/results.html
```

(or even to use STDIN directly, but as one would perhaps like to see the stdout as well I think it'd be better to use socket and pipe in/out/err there...)

Regards,
Lukáš

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/avocado-devel/attachments/20190208/1e6e8bab/attachment.sig>


More information about the Avocado-devel mailing list