<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hi Cleber,</div><div><br></div><div>I can see the content in /mnt/us/testutils/python/lib/python2.7/site-packages/avocado_framework-68.0-py2.7.egg/EGG-INFO/entry_points.txt:</div><div>[root@kindle site-packages]# cat ./avocado_framework-68.0-py2.7.egg/EGG-INFO/ent<br>ry_points.txt<br>[avocado.plugins.cli]<br>envkeep = avocado.plugins.envkeep:EnvKeep<br>gdb = avocado.plugins.gdb:GDB<br>journal = avocado.plugins.journal:Journal<br>json = avocado.plugins.jsonresult:JSONCLI<br>json_variants = avocado.plugins.json_variants:JsonVariantsCLI<br>replay = avocado.plugins.replay:Replay<br>tap = avocado.plugins.tap:TAP<br>wrapper = avocado.plugins.wrapper:Wrapper<br>xunit = avocado.plugins.xunit:XUnitCLI<br>zip_archive = avocado.plugins.archive:ArchiveCLI<br><br>[avocado.plugins.cli.cmd]<br>config = avocado.plugins.config:Config<br>diff = avocado.plugins.diff:Diff<br>distro = avocado.plugins.distro:Distro<br>exec-path = avocado.plugins.exec_path:ExecPath<br>list = avocado.plugins.list:List<br>multiplex = avocado.plugins.multiplex:Multiplex<br>plugins = avocado.plugins.plugins:Plugins<br>run = avocado.plugins.run:Run<br>sysinfo = avocado.plugins.sysinfo:SysInfo<br>variants = avocado.plugins.variants:Variants<br><br>[avocado.plugins.job.prepost]<br>human = avocado.plugins.human:HumanJob<br>jobscripts = avocado.plugins.jobscripts:JobScripts<br>teststmpdir = avocado.plugins.teststmpdir:TestsTmpDir<br><br>[avocado.plugins.result]<br>json = avocado.plugins.jsonresult:JSONResult<br>xunit = avocado.plugins.xunit:XUnitResult<br>zip_archive = avocado.plugins.archive:Archive<br><br>[avocado.plugins.result_events]<br>human = avocado.plugins.human:Human<br>journal = avocado.plugins.journal:JournalResult<br>tap = avocado.plugins.tap:TAPResult<br><br>[avocado.plugins.varianter]<br>json_variants = avocado.plugins.json_variants:JsonVariants<br></div><div><br></div><div><br></div><div>Thanks,</div><div>Junchao<br></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Feb 26, 2019 at 1:32 PM Cleber Rosa <<a href="mailto:crosa@redhat.com">crosa@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
<br>
----- Original Message -----<br>
> From: "Junchao Zhang" <<a href="mailto:zhangjckimi@gmail.com" target="_blank">zhangjckimi@gmail.com</a>><br>
> To: "Cleber Rosa" <<a href="mailto:crosa@redhat.com" target="_blank">crosa@redhat.com</a>><br>
> Cc: "Lukáš Doktor" <<a href="mailto:ldoktor@redhat.com" target="_blank">ldoktor@redhat.com</a>>, <a href="mailto:avocado-devel@redhat.com" target="_blank">avocado-devel@redhat.com</a><br>
> Sent: Tuesday, February 26, 2019 3:47:20 PM<br>
> Subject: Re: [Avocado-devel] Avocado related questions<br>
> <br>
> HI Cleber,<br>
> <br>
> Here is some problem:<br>
> I cannot see anything when I ran the command:<br>
> >>> pkg_resources.get_entry_map(dist)<br>
> {}<br>
> <br>
<br>
As I suspected, there are no entry points... These are usually in a (generated)<br>
file called "entry_points.txt", inside a "dist-info" or ".egg/EGG-INFO" directory<br>
(depending on versions and installation methods).<br>
<br>
These are usually created by <a href="http://setup.py/pip" rel="noreferrer" target="_blank">setup.py/pip</a>, etc.  You should double check if<br>
you're also copying all of those generated files to the "kindle" system.<br>
<br>
But, this is just a guess, I have never installed on one system and attempted<br>
to run on another one.<br>
<br>
Regards,<br>
- Cleber.<br>
<br>
> Thanks,<br>
> Junchao<br>
> <br>
> On Tue, Feb 26, 2019 at 11:37 AM Cleber Rosa <<a href="mailto:crosa@redhat.com" target="_blank">crosa@redhat.com</a>> wrote:<br>
> <br>
> ><br>
> ><br>
> > ----- Original Message -----<br>
> > > From: "Junchao Zhang" <<a href="mailto:zhangjckimi@gmail.com" target="_blank">zhangjckimi@gmail.com</a>><br>
> > > To: "Cleber Rosa" <<a href="mailto:crosa@redhat.com" target="_blank">crosa@redhat.com</a>><br>
> > > Cc: "Lukáš Doktor" <<a href="mailto:ldoktor@redhat.com" target="_blank">ldoktor@redhat.com</a>>, <a href="mailto:avocado-devel@redhat.com" target="_blank">avocado-devel@redhat.com</a><br>
> > > Sent: Tuesday, February 26, 2019 2:23:39 PM<br>
> > > Subject: Re: [Avocado-devel] Avocado related questions<br>
> > ><br>
> > > Hi Cleber,<br>
> > ><br>
> > > Here is the output:<br>
> > > >>> import pkg_resources<br>
> > > >>> pkg_resources.get_distribution('avocado-framework')<br>
> > > avocado-framework 68.0<br>
> > > (/mnt/us/testutils/python/lib/python2.7/site-packages)<br>
> > ><br>
> > > [root@kindle scripts]# cd<br>
> > > /mnt/us/testutils/python/lib/python2.7/site-packages<br>
> > > [root@kindle site-packages]# find . -name "avocado*-info"<br>
> > > ./avocado_framework-68.0-py2.7.egg-info<br>
> > ><br>
> > > I did not see something like *.dist-info in this folder.<br>
> > ><br>
> ><br>
> > OK, but the 'egg-info' should be just as good (different<br>
> > installation methods produce different ".info" dirs).<br>
> ><br>
> > Could you please try:<br>
> ><br>
> >    >>> dist = pkg_resources.get_distribution('avocado-framework')<br>
> >    >>> pkg_resources.get_entry_map(dist)<br>
> ><br>
> > On my system it shows (beautified):<br>
> ><br>
> > {'avocado.plugins.cli': {'envkeep': EntryPoint.parse('envkeep =<br>
> > avocado.plugins.envkeep:EnvKeep'),<br>
> >                          'gdb': EntryPoint.parse('gdb =<br>
> > avocado.plugins.gdb:GDB'),<br>
> >                          'journal': EntryPoint.parse('journal =<br>
> > avocado.plugins.journal:Journal'),<br>
> >                          'json': EntryPoint.parse('json =<br>
> > avocado.plugins.jsonresult:JSONCLI'),<br>
> >                          'json_variants': EntryPoint.parse('json_variants<br>
> > = avocado.plugins.json_variants:JsonVariantsCLI'),<br>
> >                          'replay': EntryPoint.parse('replay =<br>
> > avocado.plugins.replay:Replay'),<br>
> >                          'tap': EntryPoint.parse('tap =<br>
> > avocado.plugins.tap:TAP'),<br>
> >                          'wrapper': EntryPoint.parse('wrapper =<br>
> > avocado.plugins.wrapper:Wrapper'),<br>
> >                          'xunit': EntryPoint.parse('xunit =<br>
> > avocado.plugins.xunit:XUnitCLI'),<br>
> >                          'zip_archive': EntryPoint.parse('zip_archive =<br>
> > avocado.plugins.archive:ArchiveCLI')},<br>
> >  'avocado.plugins.cli.cmd': {'config': EntryPoint.parse('config =<br>
> > avocado.plugins.config:Config'),<br>
> >                              'diff': EntryPoint.parse('diff =<br>
> > avocado.plugins.diff:Diff'),<br>
> >                              'distro': EntryPoint.parse('distro =<br>
> > avocado.plugins.distro:Distro'),<br>
> >                              'exec-path': EntryPoint.parse('exec-path =<br>
> > avocado.plugins.exec_path:ExecPath'),<br>
> >                              'list': EntryPoint.parse('list =<br>
> > avocado.plugins.list:List'),<br>
> >                              'multiplex': EntryPoint.parse('multiplex =<br>
> > avocado.plugins.multiplex:Multiplex'),<br>
> >                              'plugins': EntryPoint.parse('plugins =<br>
> > avocado.plugins.plugins:Plugins'),<br>
> >                              'run': EntryPoint.parse('run =<br>
> > avocado.plugins.run:Run'),<br>
> >                              'sysinfo': EntryPoint.parse('sysinfo =<br>
> > avocado.plugins.sysinfo:SysInfo'),<br>
> >                              'variants': EntryPoint.parse('variants =<br>
> > avocado.plugins.variants:Variants')},<br>
> >  'avocado.plugins.job.prepost': {'human': EntryPoint.parse('human =<br>
> > avocado.plugins.human:HumanJob'),<br>
> >                                  'jobscripts':<br>
> > EntryPoint.parse('jobscripts = avocado.plugins.jobscripts:JobScripts'),<br>
> >                                  'teststmpdir':<br>
> > EntryPoint.parse('teststmpdir = avocado.plugins.teststmpdir:TestsTmpDir')},<br>
> >  'avocado.plugins.result': {'json': EntryPoint.parse('json =<br>
> > avocado.plugins.jsonresult:JSONResult'),<br>
> >                             'xunit': EntryPoint.parse('xunit =<br>
> > avocado.plugins.xunit:XUnitResult'),<br>
> >                             'zip_archive': EntryPoint.parse('zip_archive =<br>
> > avocado.plugins.archive:Archive')},<br>
> >  'avocado.plugins.result_events': {'human': EntryPoint.parse('human =<br>
> > avocado.plugins.human:Human'),<br>
> >                                    'journal': EntryPoint.parse('journal =<br>
> > avocado.plugins.journal:JournalResult'),<br>
> >                                    'tap': EntryPoint.parse('tap =<br>
> > avocado.plugins.tap:TAPResult')},<br>
> >  'avocado.plugins.varianter': {'json_variants':<br>
> > EntryPoint.parse('json_variants =<br>
> > avocado.plugins.json_variants:JsonVariants')}}<br>
> ><br>
> ><br>
> > FIY, the available commands come from the avocado.plugins.cli.cmd key.<br>
> ><br>
> > Regards,<br>
> > - Cleber.<br>
> ><br>
> ><br>
> > > Thanks,<br>
> > > Junchao<br>
> > ><br>
> > > On Tue, Feb 26, 2019 at 11:14 AM Cleber Rosa <<a href="mailto:crosa@redhat.com" target="_blank">crosa@redhat.com</a>> wrote:<br>
> > ><br>
> > > ><br>
> > > ><br>
> > > > ----- Original Message -----<br>
> > > > > From: "Junchao Zhang" <<a href="mailto:zhangjckimi@gmail.com" target="_blank">zhangjckimi@gmail.com</a>><br>
> > > > > To: "Lukáš Doktor" <<a href="mailto:ldoktor@redhat.com" target="_blank">ldoktor@redhat.com</a>><br>
> > > > > Cc: <a href="mailto:avocado-devel@redhat.com" target="_blank">avocado-devel@redhat.com</a><br>
> > > > > Sent: Tuesday, February 26, 2019 1:38:40 PM<br>
> > > > > Subject: Re: [Avocado-devel] Avocado related questions<br>
> > > > ><br>
> > > > > Hi Lukas,<br>
> > > > ><br>
> > > > > Here is some update:<br>
> > > > > I replace the setuptools with a new one and reran "python setup.py<br>
> > > > > install". I have attached the output below. Everything looks great.<br>
> > But<br>
> > > > > after the installation, when I execute<br>
> > /mnt/us/avocado/scripts/avocado,<br>
> > > > > there is still not options for valid subcommands:<br>
> > > > > [root@kindle scripts]# python avocado run<br>
> > > > > ***<br>
> > > > > subcommands:<br>
> > > > >   valid subcommands<br>
> > > > ><br>
> > > > >   {}                    subcommand help<br>
> > > > ><br>
> > > > > avocado: error: argument subcommand: invalid choice: 'run' (choose<br>
> > from )<br>
> > > > ><br>
> > > ><br>
> > > > Hi Junchao,<br>
> > > ><br>
> > > > Getting a bit more "under the hood", could you please open a Python<br>
> > > > interpreter<br>
> > > > on your kindle system and execute:<br>
> > > ><br>
> > > >    >>> import pkg_resources<br>
> > > >    >>> pkg_resources.get_distribution('avocado-framework')<br>
> > > ><br>
> > > > It should return something like:<br>
> > > ><br>
> > > >    avocado-framework 68.0 (/tmp/venv/lib/python3.7/site-packages)<br>
> > > ><br>
> > > > Then, in the directory given under parenthesis, there should be a<br>
> > directory<br>
> > > > named after the "distribution" name, and ending in   In this case:<br>
> > > ><br>
> > > ><br>
> > /tmp/venv/lib/python3.7/site-packages/avocado_framework-68.0.dist-info<br>
> > > ><br>
> > > > Can you please check if this directory exists, and if you have a<br>
> > content<br>
> > > > similar to:<br>
> > > ><br>
> > > >    $ ls<br>
> > > > /tmp/venv/lib/python3.7/site-packages/avocado_framework-68.0.dist-info<br>
> > > >    entry_points.txt  INSTALLER  METADATA  RECORD  top_level.txt  WHEEL<br>
> > > ><br>
> > > > Thanks,<br>
> > > > - Cleber.<br>
> > > ><br>
> > > > > Thanks,<br>
> > > > > Junchao<br>
> > > > ><br>
> > > > > On Tue, Feb 26, 2019 at 9:47 AM Junchao Zhang <<a href="mailto:zhangjckimi@gmail.com" target="_blank">zhangjckimi@gmail.com</a><br>
> > ><br>
> > > > wrote:<br>
> > > > ><br>
> > > > > > Hi Lukas,<br>
> > > > > ><br>
> > > > > > I am using Kindle which is armv7l. There is no "pip" on this<br>
> > server.<br>
> > > > What<br>
> > > > > > I did is I directly copy the setuptools package from my x86_64<br>
> > Ubuntu<br>
> > > > and<br>
> > > > > > removed all the .pyc files in the package. The setuptools work<br>
> > fine on<br>
> > > > my<br>
> > > > > > x86_64 server. We want to keep the system clean so probably cannot<br>
> > > > install<br>
> > > > > > "pip" on the server. Do you have any solution for this situation?<br>
> > > > > ><br>
> > > > > > Thanks,<br>
> > > > > > Junchao<br>
> > > > > ><br>
> > > > > > On Mon, Feb 25, 2019 at 11:51 PM Lukáš Doktor <<a href="mailto:ldoktor@redhat.com" target="_blank">ldoktor@redhat.com</a>><br>
> > > > wrote:<br>
> > > > > ><br>
> > > > > >> Dne 26. 02. 19 v 2:46 Junchao Zhang napsal(a):<br>
> > > > > >> > HI Lukas,<br>
> > > > > >> ><br>
> > > > > >> > Thanks for your explanation. My situation is I am trying to use<br>
> > > > Avocado<br>
> > > > > >> on my arm server.<br>
> > > > > >> > When I ran 'python setup.py install', it had the following<br>
> > output:<br>
> > > > > >> ><br>
> > > > > >> > [root@kindle avocado]# python setup.py install<br>
> > > > > >> > /mnt/us/testutils/python/lib/python2.7/distutils/dist.py:267:<br>
> > > > > >> UserWarning: Unknown distribution option: 'entry_points'<br>
> > > > > >> > /mnt/us/testutils/python/lib/python2.7/distutils/dist.py:267:<br>
> > > > > >> UserWarning: Unknown distribution option: 'zip_safe'<br>
> > > > > >> > /mnt/us/testutils/python/lib/python2.7/distutils/dist.py:267:<br>
> > > > > >> UserWarning: Unknown distribution option: 'include_package_data'<br>
> > > > > >> > /mnt/us/testutils/python/lib/python2.7/distutils/dist.py:267:<br>
> > > > > >> UserWarning: Unknown distribution option: 'python_requires'<br>
> > > > > >> > /mnt/us/testutils/python/lib/python2.7/distutils/dist.py:267:<br>
> > > > > >> UserWarning: Unknown distribution option: 'install_requires'<br>
> > > > > >> > /mnt/us/testutils/python/lib/python2.7/distutils/dist.py:267:<br>
> > > > > >> UserWarning: Unknown distribution option: 'test_suite'<br>
> > > > > >><br>
> > > > > >> Hello Kimi,<br>
> > > > > >><br>
> > > > > >> this looks like old setuptools. What version are you using? Can<br>
> > you<br>
> > > > > >> please provide the output of `pip list` to see the installed<br>
> > > > libraries?<br>
> > > > > >> Also if `setuptools` is not listed, you should install it (or try<br>
> > > > updating<br>
> > > > > >> it). Currently I'm using "setuptools==40.4.3".<br>
> > > > > >><br>
> > > > > >> What could also help is knowing what distribution are you working<br>
> > on.<br>
> > > > I'm<br>
> > > > > >> running avocado jobs on aarch64 on RHEL7 and RHEL8 and it works<br>
> > like a<br>
> > > > > >> charm.<br>
> > > > > >><br>
> > > > > >> Regards,<br>
> > > > > >> Lukáš<br>
> > > > > >><br>
> > > > > >> > running install<br>
> > > > > >> > running build<br>
> > > > > >> > running build_py<br>
> > > > > >> > running build_scripts<br>
> > > > > >> > running install_lib<br>
> > > > > >> > running install_scripts<br>
> > > > > >> > changing mode of /mnt/us/testutils/python/bin/avocado to 777<br>
> > > > > >> > changing mode of<br>
> > /mnt/us/testutils/python/bin/avocado-rest-client<br>
> > > > to 777<br>
> > > > > >> > running install_egg_info<br>
> > > > > >> > Removing<br>
> > > > > >><br>
> > > ><br>
> > /mnt/us/testutils/python/lib/python2.7/site-packages/avocado_framework-68.0-py2.7.egg-info<br>
> > > > > >> > Writing<br>
> > > > > >><br>
> > > ><br>
> > /mnt/us/testutils/python/lib/python2.7/site-packages/avocado_framework-68.0-py2.7.egg-info<br>
> > > > > >> ><br>
> > > > > >> ><br>
> > > > > >> > And I still cannot see any subcommands when I directly executed<br>
> > the<br>
> > > > > >> avocado file:<br>
> > > > > >> > [root@kindle us]# python avocado_s<br>
> > > > > >> > ******<br>
> > > > > >> > subcommands:<br>
> > > > > >> >   valid subcommands<br>
> > > > > >> ><br>
> > > > > >> >   {}                    subcommand help<br>
> > > > > >> ><br>
> > > > > >> ><br>
> > > > > >> > Do you have any idea?<br>
> > > > > >> ><br>
> > > > > >> > Thanks,<br>
> > > > > >> > Junchao<br>
> > > > > >> ><br>
> > > > > >> ><br>
> > > > > >> > On Mon, Feb 25, 2019 at 2:53 AM Lukáš Doktor <<br>
> > <a href="mailto:ldoktor@redhat.com" target="_blank">ldoktor@redhat.com</a><br>
> > > > > >> <mailto:<a href="mailto:ldoktor@redhat.com" target="_blank">ldoktor@redhat.com</a>>> wrote:<br>
> > > > > >> ><br>
> > > > > >> >     Dne 22. 02. 19 v 18:09 Junchao Zhang napsal(a):<br>
> > > > > >> >     > Dear avocado development team,<br>
> > > > > >> >     ><br>
> > > > > >> >     > My name is Kimi. Currently I am working on Linux<br>
> > development.<br>
> > > > Our<br>
> > > > > >> team used Autotest before. Currently I am trying to use Avocado.<br>
> > It is<br>
> > > > > >> really a great framework. I have some questions that hope you can<br>
> > > > help me<br>
> > > > > >> with.<br>
> > > > > >> >     ><br>
> > > > > >> >     > 1. Since I do not want to do installation on our arm<br>
> > system, I<br>
> > > > > >> tried to manually run avocado.<br>
> > > > > >> >     > I copied the avocado script ~/.local/bin/avocado and added<br>
> > > > > >> necessary packages on the device. Then I can successfully running<br>
> > > > "python<br>
> > > > > >> SCRIPT_NAME". But looks like there is no subcommands options<br>
> > > > available.<br>
> > > > > >> >     > subcommands:<br>
> > > > > >> >     >   valid subcommands<br>
> > > > > >> >     ><br>
> > > > > >> >     >   {}                    subcommand help<br>
> > > > > >> >     ><br>
> > > > > >> >     > Did I miss something so that I can do "python SCRIPT_NAME<br>
> > > > run"?<br>
> > > > > >> >     ><br>
> > > > > >> >     > 2. When I tried avocado on my Ubuntu, it works fine. The<br>
> > only<br>
> > > > > >> issue is there isn't any tests available when I run "Avocado<br>
> > list". I<br>
> > > > just<br>
> > > > > >> followed the instructions on online doc.<br>
> > > > > >> >     ><br>
> > > > > >> >     > Hope to hear back from you soon!<br>
> > > > > >> >     ><br>
> > > > > >> >     > Thanks,<br>
> > > > > >> >     > Junchao<br>
> > > > > >> ><br>
> > > > > >> >     Dear Kimi,<br>
> > > > > >> ><br>
> > > > > >> >     Avocado uses stevedore as a plugin system which uses<br>
> > setuptools<br>
> > > > > >> entry points<br>
> > > > > >><br>
> > > ><br>
> > <a href="https://avocado-framework.readthedocs.io/en/latest/Plugins.html#registering-plugins" rel="noreferrer" target="_blank">https://avocado-framework.readthedocs.io/en/latest/Plugins.html#registering-plugins</a><br>
> > > > > >> to discover available plugins.<br>
> > > > > >> ><br>
> > > > > >> >     To setup Avocado for development you can simply clone the<br>
> > git<br>
> > > > repo<br>
> > > > > >> to any location and use `python setup.py develop --user` (user<br>
> > means<br>
> > > > use<br>
> > > > > >> "~/.local" and not "/usr") or simply by our `make develop` or<br>
> > `make<br>
> > > > link`<br>
> > > > > >> makefile target (see `make help` for details), which creates<br>
> > "links"<br>
> > > > in<br>
> > > > > >> "~/.local/lib". The difference in "install" vs. "develop" is that<br>
> > it<br>
> > > > won't<br>
> > > > > >> copy the scripts, it simply tells python that this library is<br>
> > located<br>
> > > > in<br>
> > > > > >> this directory, therefor any change in your cloned directory is<br>
> > > > propagated<br>
> > > > > >> (apart from new/renamed entry-points which requires to re-execute<br>
> > > > "make<br>
> > > > > >> develop").<br>
> > > > > >> ><br>
> > > > > >> >     Note the "develop" puts "avocado" binary to<br>
> > > > "~/.local/bin/avocado".<br>
> > > > > >> Using it usually requires extending the PATH, or executing<br>
> > "python3<br>
> > > > > >> scripts/avocado" from the cloned git location.<br>
> > > > > >> ><br>
> > > > > >> >     Last but not least, details on installing from git are here:<br>
> > > > > >><br>
> > > ><br>
> > <a href="https://avocado-framework.readthedocs.io/en/latest/GetStartedGuide.html#generic-installation-from-a-git-repository" rel="noreferrer" target="_blank">https://avocado-framework.readthedocs.io/en/latest/GetStartedGuide.html#generic-installation-from-a-git-repository</a><br>
> > > > > >> ><br>
> > > > > >> >     Happy hacking,<br>
> > > > > >> >     Lukáš<br>
> > > > > >> ><br>
> > > > > >> >     PS: Not sure what you require in your testing, there are two<br>
> > > > debts<br>
> > > > > >> we have compare to Autotest and that is multi-host testing<br>
> > > > > >><br>
> > > ><br>
> > <a href="https://trello.com/c/AnoH6vhP/530-rfc-multiple-machine-support-for-tests" rel="noreferrer" target="_blank">https://trello.com/c/AnoH6vhP/530-rfc-multiple-machine-support-for-tests</a><br>
> > > > > >> and tests surviving host reboot<br>
> > > > > >><br>
> > > ><br>
> > <a href="https://trello.com/c/mzhpqQyx/1233-add-avocado-service-to-allow-reboot-between-test-communication-and-even-safer-funcatexit" rel="noreferrer" target="_blank">https://trello.com/c/mzhpqQyx/1233-add-avocado-service-to-allow-reboot-between-test-communication-and-even-safer-funcatexit</a><br>
> > > > > >> ><br>
> > > > > >><br>
> > > > > >><br>
> > > > > >><br>
> > > > ><br>
> > > ><br>
> > ><br>
> ><br>
> <br>
</blockquote></div>