genode/repos/gems/recipes/pkg/test-fs_tool/runtime
Martin Stein c47a6b0830 depot_autopilot: simplify success-criterion syntax
* Removes the <event> tag from all test package runtime files and replaces the
  contained <timeout> and <log> sub-tags with the new tags <succeed> and
  <fail>. If a <succeed> or <fail> tag has a content, it defines a log pattern
  that should be recognized and render the test failed or successful. If a
  <succeed> or <fail> tag has an attribute after_seconds that is not set to 0,
  it defines a timeout after which the test should be rendered failed or
  successful.

* Adapts the Depot Autopilot to support the new syntax in the test-package
  runtime files. However, for now, the Depot Autopilot is kept compatible to
  the old syntax as well. If the <events> tag is present, it is prioritized
  over the new syntax.

Fixes #4922
2023-08-21 08:12:01 +02:00

140 lines
3.8 KiB
Plaintext

<runtime ram="32M" caps="1000" binary="init">
<fail after_seconds="20"/>
<succeed>
[init -> test -> remove] *file /items cannot be removed because it is a directory*
[init -> test -> remove] remove file /items/2*
[init -> test -> remove] *file /3 cannot be removed because there is no such file*
[init -> test -> remove] remove file /4*
[init -> report_rom] report 'test -> fs_query -> listing'
[init -> report_rom] &lt;listing>
[init -> report_rom] &lt;dir path="/fs/items">
[init -> report_rom] &lt;file name="1" writeable="yes">first&lt;/file>
[init -> report_rom] &lt;file name="5" writeable="yes">fifth&lt;/file>
[init -> report_rom] &lt;/dir>
[init -> report_rom] &lt;dir path="/fs/new/file/at/subdir">
[init -> report_rom] &lt;file name="content" writeable="yes">new file&lt;/file>
[init -> report_rom] &lt;/dir>
[init -> report_rom] &lt;/listing>
</succeed>
<content>
<rom label="ld.lib.so"/>
<rom label="report_rom"/>
<rom label="sequence"/>
<rom label="vfs"/>
<rom label="vfs.lib.so"/>
<rom label="vfs_import.lib.so"/>
<rom label="fs_query"/>
<rom label="fs_tool"/>
<rom label="dummy"/>
</content>
<config>
<parent-provides>
<service name="ROM"/>
<service name="LOG"/>
<service name="RM"/>
<service name="CPU"/>
<service name="PD"/>
<service name="Timer"/>
</parent-provides>
<default-route>
<any-service> <parent/> <any-child/> </any-service>
</default-route>
<default caps="100"/>
<start name="report_rom">
<resource name="RAM" quantum="1M"/>
<provides> <service name="Report"/> <service name="ROM"/> </provides>
<config verbose="yes"/>
</start>
<start name="vfs">
<resource name="RAM" quantum="4M"/>
<provides><service name="File_system"/></provides>
<config>
<vfs>
<ram/>
<import>
<dir name="items">
<inline name="1">first</inline>
<inline name="2">second</inline>
</dir>
<inline name="4">fourth</inline>
</import>
</vfs>
<default-policy root="/" writeable="yes"/>
</config>
</start>
<start name="test" caps="700">
<binary name="sequence"/>
<resource name="RAM" quantum="16M"/>
<config>
<start name="sleep" caps="100">
<resource name="RAM" quantum="4M"/>
<binary name="dummy"/>
<config>
<sleep ms="500"/>
<exit/>
</config>
</start>
<start name="new-file" caps="500">
<binary name="fs_tool"/>
<config verbose="yes" exit="yes">
<vfs>
<fs writeable="yes"/>
</vfs>
<new-file path="/items/5">fifth</new-file>
<new-file path="/new/file/at/subdir/content">new file</new-file>
</config>
</start>
<start name="sleep" caps="100">
<resource name="RAM" quantum="4M"/>
<binary name="dummy"/>
<config>
<sleep ms="500"/>
<exit/>
</config>
</start>
<start name="remove" caps="500">
<binary name="fs_tool"/>
<config verbose="yes" exit="yes">
<vfs>
<fs writeable="yes"/>
</vfs>
<remove-file path="/items"/> <!-- is no file -->
<remove-file path="/items/2"/> <!-- should succeed -->
<remove-file path="/3"/> <!-- does not exist -->
<remove-file path="/4"/> <!-- should succeed -->
</config>
</start>
<start name="fs_query">
<resource name="RAM" quantum="1M"/>
<config>
<vfs> <dir name="fs"> <fs/> </dir> </vfs>
<query path="/fs/items" content="yes"/>
<query path="/fs/new/file/at/subdir" content="yes"/>
</config>
</start>
<start name="sleep" caps="100">
<resource name="RAM" quantum="4M"/>
<binary name="dummy"/>
<config>
<log string="sleep forever..."/>
</config>
</start>
</config>
</start>
</config>
</runtime>