<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Fri, Jul 25, 2025 at 11:15 AM Luca Vizzarro <<a href="mailto:luca.vizzarro@arm.com">luca.vizzarro@arm.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">Add a new artifact module which provides DTS with remote and local file<br>
management capabilities. A new Artifact class is provided which acts as<br>
an abstract representation of a file that is present in any node in the<br>
testbed model. The same provides several helper file management<br>
functions, including open, which returns an ArtifactFile class which<br>
behaves like a standard Python file object for easy interoperability.<br>
<br>
Moreover, add a novel directory tree structure for both the remote<br>
temporary and local output directories. This structure would represent<br>
the test suites and test cases in structured folders as appropriate,<br>
where each artifact will be stored. The location of the artifact is<br>
determined by the time when it was first defined. If an artifact was<br>
defined during a test case stage, this will be placed in the test case's<br>
own folder.<br>
<br>
Signed-off-by: Luca Vizzarro <<a href="mailto:luca.vizzarro@arm.com" target="_blank">luca.vizzarro@arm.com</a>><br>
Reviewed-by: Paul Szczepanek <<a href="mailto:paul.szczepanek@arm.com" target="_blank">paul.szczepanek@arm.com</a>><br>
---<br><br>
+    def touch(self, mode: int = 0o644) -> None:<br>
+        """Touch the artifact file, creating it if it does not exist.<br>
+<br></blockquote><div><br></div><div>Oh yeah - is there a reason why we don't call touch in the init function? running touch should be idempotent so we aren't worried about it being called too many times. I was reminded when I saw in the softnic testsuite that it is being called in the testsuite setup. Maybe this is extra work on the testsuite side for no reason.</div><div> </div></div></div>