From b3144ae39a3760daa9a82d60b04815cba2cc52f8 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Tue, 20 May 2025 20:56:37 +0200 Subject: [PATCH 01/71] Add a new shell_out that works with AST-commands --- .../CommunicationLayer/comunication_handle.py | 83 +++++++ benchkit/shell/ast_shell_out.py | 232 ++++++++++++++++++ .../commandAST/Visitors/print_visitor.py | 37 +++ .../commandAST/Visitors/variable_visitors.py | 26 ++ .../Visitors/verification_visitors.py | 10 + benchkit/shell/commandAST/abstractTypes.py | 17 ++ benchkit/shell/commandAST/command.py | 34 +++ .../shell/commandAST/nodes/commandNodes.py | 31 +++ .../shell/commandAST/nodes/futureNodes.py | 6 + .../shell/commandAST/nodes/variable_node.py | 45 ++++ benchkit/shell/commandAST/test.py | 42 ++++ benchkit/shell/commandAST/visitor.py | 129 ++++++++++ 12 files changed, 692 insertions(+) create mode 100644 benchkit/shell/CommunicationLayer/comunication_handle.py create mode 100755 benchkit/shell/ast_shell_out.py create mode 100644 benchkit/shell/commandAST/Visitors/print_visitor.py create mode 100644 benchkit/shell/commandAST/Visitors/variable_visitors.py create mode 100644 benchkit/shell/commandAST/Visitors/verification_visitors.py create mode 100755 benchkit/shell/commandAST/abstractTypes.py create mode 100755 benchkit/shell/commandAST/command.py create mode 100644 benchkit/shell/commandAST/nodes/commandNodes.py create mode 100644 benchkit/shell/commandAST/nodes/futureNodes.py create mode 100755 benchkit/shell/commandAST/nodes/variable_node.py create mode 100755 benchkit/shell/commandAST/test.py create mode 100755 benchkit/shell/commandAST/visitor.py diff --git a/benchkit/shell/CommunicationLayer/comunication_handle.py b/benchkit/shell/CommunicationLayer/comunication_handle.py new file mode 100644 index 00000000..13f2d8ee --- /dev/null +++ b/benchkit/shell/CommunicationLayer/comunication_handle.py @@ -0,0 +1,83 @@ + +from abc import ABC,abstractmethod + +import os + +class Output(ABC): + """interface to communicate with command output on all platforms, functions are due to compatibility""" + @abstractmethod + def readOut(self, amount_of_bytes:int) -> bytes: + """reads at most amount_of_bytes from the available stdout""" + pass + + @abstractmethod + def readErr(self, amount_of_bytes:int) -> bytes: + """reads at most amount_of_bytes from the available stderr""" + pass + + @abstractmethod + def getReaderFdOut(self) -> int: + pass + + @abstractmethod + def getReaderFdErr(self) -> int: + pass + +class WritableOutput(Output): + """A way to create a fileStream that can be used as a CommandOutput by other functions""" + def __init__(self) -> None: + self.readerOut, self.writerOut = os.pipe() + self.readerErr, self.writerErr = os.pipe() + + def writeOut(self, bytes_to_write:bytes) -> None: + os.write(self.writerOut,bytes_to_write) + + def endWritingOut(self) -> None: + os.close(self.writerOut) + + def readOut(self, amount_of_bytes:int) -> bytes: + return os.read(self.readerOut, amount_of_bytes) + + def getReaderFdOut(self) -> int: + return self.readerOut + + def getWriterFdOut(self) -> int: + return self.writerOut + + def writeErr(self, bytes_to_write:bytes) -> None: + os.write(self.writerErr,bytes_to_write) + + def endWritingErr(self) -> None: + os.close(self.writerErr) + + def readErr(self, amount_of_bytes:int) -> bytes: + return os.read(self.readerErr, amount_of_bytes) + + def getReaderFdErr(self) -> int: + return self.readerErr + + def getWriterFdErr(self) -> int: + return self.writerErr + + + +"""File notes OUTDATED KEPT FOR REFERENCE FOR A BIT + +the read function needs verry thourough testing to make sure that all of the edge cases are the same +-> is it blocking when X bytes requested and there are not X bytes available +-> how does it react on reading X bytes when endof file has been reached +-> how does it react when the stream has been closed +=> these need to become documented so that further implementations can follow it + +OutClosed has been removed due to there being no way to detect this withou blocking for the local intreface +-> detecting if there is stil data needs to be done manualy in the hooks + -> if you recieve a b'' no further data will be readable + + + +CommandPassthrough can we fill the buffer and what happens if we do +-> if hooks dont clear it fast enough what will happen +-> test this + + +""" \ No newline at end of file diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py new file mode 100755 index 00000000..cb7b8a64 --- /dev/null +++ b/benchkit/shell/ast_shell_out.py @@ -0,0 +1,232 @@ +#!/usr/bin/env python3 + +from multiprocessing import Process,Queue +import os +import pathlib +import shlex +import subprocess +import sys +from typing import Dict, Iterable, List, Optional +from benchkit.shell.commandAST import command as makecommand +from benchkit.shell.commandAST.nodes.commandNodes import CommandNode +from benchkit.shell.commandAST.visitor import execute_on_remote, getString, inline + +def shell_out_new( + command: str|List[str]|CommandNode, + std_input: Optional[str] = None, + redirect_stderr_to_stdout:bool = True, # New feature, since the old implementation did this by deafault but we now have controll over it + current_dir: Optional[pathlib.Path | os.PathLike | str] = None, + environment: None | Dict[str, str] = None, + # shell: bool = False, Support REMOVED + print_command: bool = True, # TEMPORARALY not suported + print_output: bool = False, + print_env: bool = True, # TEMPORARALY not suported + print_curdir: bool = True, # TEMPORARALY not suported + print_shell_cmd: bool = False, # TEMPORARALY not suported + print_file_shell_cmd: bool = True, # TEMPORARALY not suported + timeout: Optional[int] = None, + output_is_log: bool = False, + ignore_ret_codes: Iterable[int] = (), + # split_arguments: bool = True, Support REMOVED -> can be achieved in another manner +) -> str: + """ + Run a shell command on the host system. + + Args: + command (Command): + the command to run. + std_input (Optional[str], optional): + input to feed to the command. + Defaults to None. + current_dir (Optional[PathType], optional): + directory where to run the command. If None, the current directory is used. + Defaults to None. + environment (Environment, optional): + environment variables to pass to the command. + Defaults to None. + shell (bool, optional): + whether to run the command in a shell environment (like "bash") or as a real command + given to "exec". + Defaults to False. + print_command (bool, optional): + whether to print the command. + Defaults to True. + print_output (bool, optional): + whether to print the output. + Defaults to True. + print_env (bool, optional): + whether to print the environment variables when they are defined. + Defaults to True. + print_curdir (bool, optional): + whether to print the current directory if provided. + Defaults to True. + print_shell_cmd (bool, optional): + whether to print the complete shell command, ready to be copy-pasted in a terminal. + Defaults to False. + print_file_shell_cmd (bool, optional): + whether to print the shell command in a log file (`/tmp/benchkit.sh`). + Defaults to True. + timeout (Optional[int], optional): + if not None, the command will be stopped after `timeout` seconds if it did not stop + earlier. + Defaults to None. + output_is_log (bool, optional): + whether the output of this command is logging and should be outputted as such, line by + line (e.g. cmake or make command). + Defaults to False. + ignore_ret_codes (Iterable[int], optional): + collection of error return codes to ignore if they are triggered. + This allows to avoid an exception to be raised for commands that do not end with 0 even + if they are successful. + Defaults to (). + split_arguments (bool, optional): + whether the command is split in parts. + This allows for the usage of commands using things like the pipe symbol, use with shell=True for this functionality. + Defaults to True. + + Raises: + subprocess.CalledProcessError: + if the command exited with a non-zero exit code that is not ignored in + `ignore_ret_codes`. + + Returns: + str: the output of the shell command that completed successfully. + """ + + #this will run the true command confirming the exit code instead of assuming it + completedProcess = subprocess.run(["true"], timeout=None) + sucsess_value = completedProcess.returncode + def sucsess(value): + return value == sucsess_value + + + # Convert the existing structures over to the tree structure + commandTree:CommandNode + if isinstance(command,str): + commandTree = makecommand.command(command) + elif isinstance(command,list): + commandTree = makecommand.command(shlex.join(command)) + elif isinstance(command,CommandNode): + commandTree = command + else: + raise TypeError(f"Shell out was called with a command of type {type(command)}, this is unexpected and not suported") + + # Use the visitor patterns to convert our tree to an executable string + stringCommand = getString(commandTree) + + def flush_outlines(process): + """ + prints and returns the current content of stdout for a given process + Args: + process (Popen): + process to log + Returns: + str: content of stdout. + """ + outlines = [] + outline = process.stdout.readline() + while outline: + print(outline, end="") + outlines.append(outline) + outline = process.stdout.readline() + return outlines + + def flush_thread(process,output_queue): + """ + while process is running will log and store all stdout in real time + Args: + process (Popen): + process to log + output_queue (Queue): + Queue to write the returned value to + Returns: + None + """ + outlines = [] + retcode = process.poll() + while retcode is None: + outlines += flush_outlines(process) + retcode = process.poll() + print(retcode) + print("not flushed") + outlines += flush_outlines(process) + sys.stdout.flush() + sys.stderr.flush() + output_queue.put( "".join(outlines)) + + + if redirect_stderr_to_stdout: + stderr_out = subprocess.STDOUT + else: + stderr_out = subprocess.PIPE + + with subprocess.Popen( + stringCommand, + shell=True, + cwd=current_dir, + env=environment, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + stdin=subprocess.PIPE, + text=True, + ) as shell_process: + if output_is_log: + try: + """ + logging the process takes two threads since we need to wait for the timeout while logging stdout in real time + to accomplish this we use multiprocessing in combination with error catching to interupt the logging if needed + """ + output_queue = Queue() + logger_process = Process(target=flush_thread, args=(shell_process,output_queue,)) + logger_process.start() + outs, errs = shell_process.communicate(input=std_input, timeout=timeout) + retcode = shell_process.poll() + output = output_queue.get() + + except subprocess.TimeoutExpired as err: + shell_process.kill() + logger_process.terminate() + raise err + + else: + try: + outs, errs = shell_process.communicate(input=std_input, timeout=timeout) + retcode = shell_process.poll() + output = outs + except subprocess.TimeoutExpired as err: + shell_process.kill() + raise err + + #not a sucsessfull execution and not an alowed exit code + #raise the appropriate error + if not sucsess(retcode) and retcode not in ignore_ret_codes: + raise subprocess.CalledProcessError( + retcode, + shell_process.args, + ) + #not a sucsessfull execution but an alowed exit code + #append the error to the output + if not sucsess(retcode): + output += shell_process.stderr.read() + + + if print_output and not output_is_log: + if "" != output.strip(): + print("[OUT]") + print(output.strip()) + + assert isinstance(output, str) + return output + +def test(): + a = shell_out_new("ssh user@host -p 57429 'perf stat sleep 1'",print_output=True,output_is_log=True) + print("--------------------") + print(a) + shell_out_new(['ssh', 'user@host', '-p', '57429', '-t', 'perf stat sleep 1']) + main_command_ast = makecommand.command("sleep",["1"]) + full_command = makecommand.command("perf stat",[inline(main_command_ast)]) + remote_command = execute_on_remote(full_command,"user@host",port=57429) + shell_out_new(remote_command) + +if __name__ == "__main__": + test() \ No newline at end of file diff --git a/benchkit/shell/commandAST/Visitors/print_visitor.py b/benchkit/shell/commandAST/Visitors/print_visitor.py new file mode 100644 index 00000000..bf178700 --- /dev/null +++ b/benchkit/shell/commandAST/Visitors/print_visitor.py @@ -0,0 +1,37 @@ +from benchkit.shell.commandAST.abstractTypes import Node, Visitor +from benchkit.shell.commandAST.nodes.commandNodes import CommandNode, StringNode +from benchkit.shell.commandAST.nodes.variable_node import Var + + +class printASTVisitor(Visitor): + def __init__(self) -> None: + self.indent = 0 + def printWithIndent(self,content:str): + print("|"*self.indent + content) + def printType(self,node:Node): + self.printWithIndent(type(node).__name__) + + def __visitNodeCase(self,node:Node) -> Node: + if isinstance(node,StringNode): + self.printWithIndent(node.argument) + node.visit(self) + return node + + if isinstance(node,CommandNode): + node.visit(self) + return node + + if isinstance(node,Var): + self.printWithIndent(node.name) + node.visit(self) + return node + + return node.visit(self) + + + def visit_node(self,node:Node) -> Node: + self.printType(node) + self.indent += 1 + ret = self.__visitNodeCase(node) + self.indent -= 1 + return ret \ No newline at end of file diff --git a/benchkit/shell/commandAST/Visitors/variable_visitors.py b/benchkit/shell/commandAST/Visitors/variable_visitors.py new file mode 100644 index 00000000..8267edc1 --- /dev/null +++ b/benchkit/shell/commandAST/Visitors/variable_visitors.py @@ -0,0 +1,26 @@ +from typing import Dict, Set +from benchkit.shell.commandAST.abstractTypes import Node, Visitor +from benchkit.shell.commandAST.nodes.commandNodes import StringNode +from benchkit.shell.commandAST.nodes.variable_node import Var + + +class resolveAllVariables(Visitor): + def __init__(self,assignment:Dict[str,str]) -> None: + self.assignment = assignment + + def visit_node(self,node:Node) -> Node: + if isinstance(node,Var): + if node.name in self.assignment: + return StringNode(self.assignment[node.name]) + else: + raise ValueError(f"resolveAllVariables needs a value for all var nodes. Var node with name {node.name} has no assigned value") + return node.visit(self) + +class VariableFinder(Visitor): + def __init__(self) -> None: + self.variables:Set[Var] = set() + def visit_node(self,node:Node) -> Node: + if isinstance(node,Var): + self.variables.add(node) + node.visit(self) + return node \ No newline at end of file diff --git a/benchkit/shell/commandAST/Visitors/verification_visitors.py b/benchkit/shell/commandAST/Visitors/verification_visitors.py new file mode 100644 index 00000000..eba7fec9 --- /dev/null +++ b/benchkit/shell/commandAST/Visitors/verification_visitors.py @@ -0,0 +1,10 @@ +from benchkit.shell.commandAST.abstractTypes import Node, Visitor +from benchkit.shell.commandAST.nodes.commandNodes import CommandNode, StringNode + + +class OnlyStringAndCommandNodesChecker(Visitor): + def visit_node(self,node:Node) -> Node: + if not (isinstance(node,StringNode) or isinstance(node,CommandNode)): + raise TypeError(f"All nodes in the ast need to be of type StringNode or CommandNode before the comand can be executed found node of type {type(node)}") + node.visit(self) + return node \ No newline at end of file diff --git a/benchkit/shell/commandAST/abstractTypes.py b/benchkit/shell/commandAST/abstractTypes.py new file mode 100755 index 00000000..8714bb2b --- /dev/null +++ b/benchkit/shell/commandAST/abstractTypes.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 +from __future__ import annotations +from abc import ABC, abstractmethod + +class Node(ABC): + @abstractmethod + def visit(self,visitor:Visitor) -> Node: + """This method defines how the different ellemts of the AST should be traversed + Needs to implemented such that we can always traverse all nodes in a tree""" + +class Visitor(ABC): + def visit_node(self,node:Node) -> Node: + """This method When visiting a node can do manipulations on the node + and continue the traversal in a custom way""" + return node.visit(self) + def visitAST(self,node:Node) -> Node: + return self.visit_node(node) \ No newline at end of file diff --git a/benchkit/shell/commandAST/command.py b/benchkit/shell/commandAST/command.py new file mode 100755 index 00000000..77aecd4e --- /dev/null +++ b/benchkit/shell/commandAST/command.py @@ -0,0 +1,34 @@ + + +import shlex +from benchkit.shell.commandAST.nodes.commandNodes import * +from benchkit.shell.commandAST.nodes.futureNodes import * +from benchkit.shell.commandAST.nodes.variable_node import * + +def process_program(program:str|Generic|Location) -> StringNode: + if type(program) is str: + return StringNode(program.strip()) + else: + raise TypeError() +def process_argument(argument:str|Node) -> Node: + if type(argument) is str: + return StringNode(argument) + if isinstance(argument, Node): + return argument + else: + raise TypeError(f"argument is of type {type(argument)}") + +def command(program:str|Generic|Location, arguments:list[Node|str]|None = None) -> CommandNode: + if arguments is None: + arguments = [] + if isinstance(program,str): + ls = shlex.split(program) + program = ls[0] + extra_argumens = ls[1::] + arguments = extra_argumens + arguments + if not arguments: + return CommandNode(process_program(program), + None) + else: + return CommandNode(process_program(program), + list(map(process_argument,arguments))) \ No newline at end of file diff --git a/benchkit/shell/commandAST/nodes/commandNodes.py b/benchkit/shell/commandAST/nodes/commandNodes.py new file mode 100644 index 00000000..8f6e43e2 --- /dev/null +++ b/benchkit/shell/commandAST/nodes/commandNodes.py @@ -0,0 +1,31 @@ +from typing import List + +from benchkit.shell.commandAST.abstractTypes import * + +class StringNode(Node): + def __init__(self,argument:str) -> None: + self.argument=argument + def visit(self,visitor:Visitor): + return self + + +class CommandNode(Node): + def __init__(self,command:Node,arguments:None|List[Node]=None) -> None: + self.command:Node =command + if arguments is None: + arguments = [] + self.arguments:List[Node]=arguments + + def visit(self,visitor:Visitor): + self.command = visitor.visit_node(self.command) + self.arguments = list(map(visitor.visit_node, self.arguments)) + return self + +class InlineCommandNode(CommandNode): + def __init__(self, command:CommandNode, arguments:List[Node] | None = None): + super().__init__(command, arguments) + def visit(self, visitor:Visitor): + super().visit(visitor) + return self + + \ No newline at end of file diff --git a/benchkit/shell/commandAST/nodes/futureNodes.py b/benchkit/shell/commandAST/nodes/futureNodes.py new file mode 100644 index 00000000..d3f30269 --- /dev/null +++ b/benchkit/shell/commandAST/nodes/futureNodes.py @@ -0,0 +1,6 @@ +"""to facilitate moving files between platforms""" +class Location: + pass +"""to facilitate tools having different names across platforms""" +class Generic: + pass \ No newline at end of file diff --git a/benchkit/shell/commandAST/nodes/variable_node.py b/benchkit/shell/commandAST/nodes/variable_node.py new file mode 100755 index 00000000..2eaf5ad3 --- /dev/null +++ b/benchkit/shell/commandAST/nodes/variable_node.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 + +from typing import List, Any +from benchkit.shell.commandAST.abstractTypes import Visitor, Node + +class Var(Node): + """ + Class for variables that we can use to do Parameterization + """ + def __init__(self, + name:str, + parameter_range:None|List[Any]=None, + parameter_options:None|List[Any]=None): + # Make it so you can not instanciate this class + if type(self) is Var: + raise TypeError("Can not instanciate generic variables") + + if parameter_range is None: + parameter_range = [] + if parameter_options is None: + parameter_options = [] + + self.parameter_range = parameter_range + self.parameter_options = parameter_options + + self.name = name + self.id = id(self) + + def visit(self,visitor:Visitor): + return self + +class RuntimeVariable(Var): + """Type used to designate a variable as a runtime variable + ex: Number of threads, size of the array we want to sort""" + +class BuildVariable(Var): + """Type used to deignate a variable as a build variable + ex: optimization level of gcc compiler, """ + +class SetupVariable(Var): + """Type used to deignate a variable as a settup time variable + ex: variables that decide the shedular""" + +if __name__ == "__main__": + a = RuntimeVariable("13") diff --git a/benchkit/shell/commandAST/test.py b/benchkit/shell/commandAST/test.py new file mode 100755 index 00000000..4fff7dcc --- /dev/null +++ b/benchkit/shell/commandAST/test.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 + +from benchkit.shell.commandAST.command import command +from benchkit.shell.commandAST.nodes.variable_node import RuntimeVariable +from benchkit.shell.commandAST.visitor import printAst + + +def localtests(): + + commandres = command("'ls -R'",["arg0","arg1"]) + print("-------------------------------------------") + printAst(commandres) + commandres = command("'ls -R '",["arg0","arg1"]) + print("-------------------------------------------") + printAst(commandres) + commandres = command("' ls -R'",["arg0","arg1"]) + print("-------------------------------------------") + printAst(commandres) + commandres = command("ls -R",["arg0","arg1"]) + print("-------------------------------------------") + printAst(commandres) + commandres = command("ls -R ",["arg0","arg1"]) + print("-------------------------------------------") + printAst(commandres) + commandres = command(" ls -R",["arg0","arg1"]) + print("-------------------------------------------") + printAst(commandres) + commandres = command("ls -R",["arg0","arg1"]) + print("-------------------------------------------") + printAst(commandres) + commandres = command("ls",["arg0","arg1"]) + print("-------------------------------------------") + printAst(commandres) + print("-------------------------------------------") + commandres = command("ls -R",[RuntimeVariable("QQ",[1,2]),"arg1"]) + printAst(commandres) + +if __name__ == "__main__": + + + + localtests() \ No newline at end of file diff --git a/benchkit/shell/commandAST/visitor.py b/benchkit/shell/commandAST/visitor.py new file mode 100755 index 00000000..ca3ac28b --- /dev/null +++ b/benchkit/shell/commandAST/visitor.py @@ -0,0 +1,129 @@ +#!/usr/bin/env python3 + +import shlex +import subprocess +from typing import Dict +from benchkit.shell.commandAST.Visitors.print_visitor import printASTVisitor +from benchkit.shell.commandAST.Visitors.variable_visitors import VariableFinder, resolveAllVariables +from benchkit.shell.commandAST.Visitors.verification_visitors import OnlyStringAndCommandNodesChecker +from benchkit.shell.commandAST.abstractTypes import * +from benchkit.shell.commandAST.abstractTypes import Node +from benchkit.shell.commandAST.nodes.commandNodes import * +from benchkit.shell.commandAST.nodes.variable_node import * +from benchkit.shell.commandAST.command import command + +def VariableDuplicateDetector(ast:Node): + variable_finder = VariableFinder() + variable_finder.visitAST(ast) + var_names = list(map(lambda x: x.name,variable_finder.variables)) + for var_name in var_names: + if var_names.count(var_name) >=2: + raise NameError(f"The variable name {var_name} occures in two sepperate objects") + +def CheckReadyForConversionToCommand(ast:CommandNode): + #TODO: I want to make a grammar checker this will do for now + check = OnlyStringAndCommandNodesChecker() + ast.visit(check) + + +def convertComandToString(ast:CommandNode) -> str: + class CommandToStringVisitor(Visitor): + def visit_node(self, node: Node) -> Node: + if isinstance(node,CommandNode): + new_arg_list = [] + for arg in node.arguments: + if isinstance(arg,InlineCommandNode): + converted_ast = arg.visit(converter) + new_arg_list.append(converted_ast.command) + new_arg_list += converted_ast.arguments + else: + new_arg_list.append(arg) + node.arguments = new_arg_list + return StringNode(convertComandToString(node)) + return node.visit(self) + + converter = CommandToStringVisitor() + converted_ast = ast.visit(converter) + + args = [x.argument for x in converted_ast.arguments] + args.insert(0,converted_ast.command.argument) + print(args) + return shlex.join(args) + +# Functions to hide away visitors +def printAst(ast:Node): + v = printASTVisitor() + v.visitAST(ast) + +def resolveAllVariablesWithDict(ast:Node,d:Dict[str,str]): + variable_resolver = resolveAllVariables(d) + # check if amountOfTimeToSleep is not used twice in the command by dfferent vars resulting in wrong assignment possibly + VariableDuplicateDetector(ast) + + # Resolve the vars given an assignment dictionairy + return variable_resolver.visitAST(ast) + +def getString(ast:Node): + + # Make sure that the command has been sufficiently resolved by visitors, aka there are no leftovers from bad patterns + CheckReadyForConversionToCommand(ast) + + # Convert the ast to a string and print it + return convertComandToString(ast) + +def execute_on_remote(ast:Node,host:str,port:int) -> Node: + return command("ssh", [host, "-p",str(port), "-t", ast]) + +def inline(ast:CommandNode) -> InlineCommandNode: + return InlineCommandNode(ast.command,ast.arguments) + + +""" +Tests for the file to show that the functions are working +""" +def localtests(): + amount_of_time_to_sleep = RuntimeVariable("amountOfTimeToSleep",[1,2,5,40]) + main_command_ast = command("sleep",[amount_of_time_to_sleep]) + full_command = command("perf stat",[inline(main_command_ast), "-a"]) + remote_command = execute_on_remote(full_command,"user@host",port=57429) + printAst(remote_command) + + resolved_command = resolveAllVariablesWithDict( + remote_command,{ + "amountOfTimeToSleep":"40", + }) + + string = getString(resolved_command) + + print(string) + +def newtest(): + c = command("ssh user@host -p 57429 -t 'perf stat sleep 1'") + printAst(c) + string = getString(c) + print(string) + +def runtest(): + t = shlex.split("perf stat 'sleep 10' -a") + print(t) + + main_command_ast = command("sleep",["1"]) + full_command = command("perf stat",[inline(main_command_ast)]) + remote_command = execute_on_remote(full_command,"user@host",port=57429) + printAst(remote_command) + string = getString(remote_command) + print(string) + local_proc_1 = subprocess.Popen(string, shell=True, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + outs, errs = local_proc_1.communicate() + retcode = local_proc_1.poll() + output = outs + print(retcode) + print(str(output.decode("utf-8"))) + + +if __name__ == "__main__": + localtests() + newtest() + runtest() From 50eb8031a517557a2cf8ae2c41cb80049d555059 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Wed, 21 May 2025 09:50:37 +0200 Subject: [PATCH 02/71] fix the headers and move tests to the tests folder --- .../CommunicationLayer/comunication_handle.py | 48 +++---- benchkit/shell/ast_shell_out.py | 78 ++++++------ .../commandAST/Visitors/print_visitor.py | 26 ++-- .../commandAST/Visitors/variable_visitors.py | 28 +++-- .../Visitors/verification_visitors.py | 13 +- benchkit/shell/commandAST/abstractTypes.py | 24 ++-- benchkit/shell/commandAST/command.py | 24 ++-- .../shell/commandAST/nodes/commandNodes.py | 31 +++-- .../shell/commandAST/nodes/futureNodes.py | 11 +- .../shell/commandAST/nodes/variable_node.py | 34 ++--- benchkit/shell/commandAST/test.py | 42 ------- benchkit/shell/commandAST/visitor.py | 115 ++++++----------- tests/ast-shell/ast_shell.py | 118 ++++++++++++++++++ 13 files changed, 340 insertions(+), 252 deletions(-) delete mode 100755 benchkit/shell/commandAST/test.py create mode 100644 tests/ast-shell/ast_shell.py diff --git a/benchkit/shell/CommunicationLayer/comunication_handle.py b/benchkit/shell/CommunicationLayer/comunication_handle.py index 13f2d8ee..b7594e52 100644 --- a/benchkit/shell/CommunicationLayer/comunication_handle.py +++ b/benchkit/shell/CommunicationLayer/comunication_handle.py @@ -1,64 +1,68 @@ - -from abc import ABC,abstractmethod +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT import os +from abc import ABC, abstractmethod + class Output(ABC): - """interface to communicate with command output on all platforms, functions are due to compatibility""" + """interface to communicate with command output on all platforms, functions are due to compatibility""" + @abstractmethod - def readOut(self, amount_of_bytes:int) -> bytes: + def readOut(self, amount_of_bytes: int) -> bytes: """reads at most amount_of_bytes from the available stdout""" pass - + @abstractmethod - def readErr(self, amount_of_bytes:int) -> bytes: + def readErr(self, amount_of_bytes: int) -> bytes: """reads at most amount_of_bytes from the available stderr""" pass - + @abstractmethod def getReaderFdOut(self) -> int: pass - + @abstractmethod def getReaderFdErr(self) -> int: pass + class WritableOutput(Output): """A way to create a fileStream that can be used as a CommandOutput by other functions""" + def __init__(self) -> None: self.readerOut, self.writerOut = os.pipe() self.readerErr, self.writerErr = os.pipe() - def writeOut(self, bytes_to_write:bytes) -> None: - os.write(self.writerOut,bytes_to_write) + def writeOut(self, bytes_to_write: bytes) -> None: + os.write(self.writerOut, bytes_to_write) def endWritingOut(self) -> None: os.close(self.writerOut) - - def readOut(self, amount_of_bytes:int) -> bytes: + + def readOut(self, amount_of_bytes: int) -> bytes: return os.read(self.readerOut, amount_of_bytes) - + def getReaderFdOut(self) -> int: return self.readerOut - + def getWriterFdOut(self) -> int: return self.writerOut - - def writeErr(self, bytes_to_write:bytes) -> None: - os.write(self.writerErr,bytes_to_write) + + def writeErr(self, bytes_to_write: bytes) -> None: + os.write(self.writerErr, bytes_to_write) def endWritingErr(self) -> None: os.close(self.writerErr) - def readErr(self, amount_of_bytes:int) -> bytes: + def readErr(self, amount_of_bytes: int) -> bytes: return os.read(self.readerErr, amount_of_bytes) - + def getReaderFdErr(self) -> int: return self.readerErr - + def getWriterFdErr(self) -> int: return self.writerErr - """File notes OUTDATED KEPT FOR REFERENCE FOR A BIT @@ -80,4 +84,4 @@ def getWriterFdErr(self) -> int: -> test this -""" \ No newline at end of file +""" diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index cb7b8a64..85a12fe2 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -1,29 +1,32 @@ -#!/usr/bin/env python3 +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT -from multiprocessing import Process,Queue import os import pathlib import shlex import subprocess import sys +from multiprocessing import Process, Queue from typing import Dict, Iterable, List, Optional + from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.commandNodes import CommandNode from benchkit.shell.commandAST.visitor import execute_on_remote, getString, inline + def shell_out_new( - command: str|List[str]|CommandNode, - std_input: Optional[str] = None, - redirect_stderr_to_stdout:bool = True, # New feature, since the old implementation did this by deafault but we now have controll over it + command: str | List[str] | CommandNode, + std_input: Optional[str] = None, + redirect_stderr_to_stdout: bool = True, # New feature, since the old implementation did this by deafault but we now have controll over it current_dir: Optional[pathlib.Path | os.PathLike | str] = None, environment: None | Dict[str, str] = None, # shell: bool = False, Support REMOVED - print_command: bool = True, # TEMPORARALY not suported + print_command: bool = True, # TEMPORARALY not suported print_output: bool = False, - print_env: bool = True, # TEMPORARALY not suported - print_curdir: bool = True, # TEMPORARALY not suported - print_shell_cmd: bool = False, # TEMPORARALY not suported - print_file_shell_cmd: bool = True, # TEMPORARALY not suported + print_env: bool = True, # TEMPORARALY not suported + print_curdir: bool = True, # TEMPORARALY not suported + print_shell_cmd: bool = False, # TEMPORARALY not suported + print_file_shell_cmd: bool = True, # TEMPORARALY not suported timeout: Optional[int] = None, output_is_log: bool = False, ignore_ret_codes: Iterable[int] = (), @@ -93,23 +96,25 @@ def shell_out_new( str: the output of the shell command that completed successfully. """ - #this will run the true command confirming the exit code instead of assuming it + # this will run the true command confirming the exit code instead of assuming it completedProcess = subprocess.run(["true"], timeout=None) sucsess_value = completedProcess.returncode + def sucsess(value): return value == sucsess_value - - # Convert the existing structures over to the tree structure - commandTree:CommandNode - if isinstance(command,str): + # Convert the existing structures over to the tree structure + commandTree: CommandNode + if isinstance(command, str): commandTree = makecommand.command(command) - elif isinstance(command,list): + elif isinstance(command, list): commandTree = makecommand.command(shlex.join(command)) - elif isinstance(command,CommandNode): + elif isinstance(command, CommandNode): commandTree = command else: - raise TypeError(f"Shell out was called with a command of type {type(command)}, this is unexpected and not suported") + raise TypeError( + f"Shell out was called with a command of type {type(command)}, this is unexpected and not suported" + ) # Use the visitor patterns to convert our tree to an executable string stringCommand = getString(commandTree) @@ -131,7 +136,7 @@ def flush_outlines(process): outline = process.stdout.readline() return outlines - def flush_thread(process,output_queue): + def flush_thread(process, output_queue): """ while process is running will log and store all stdout in real time Args: @@ -152,9 +157,8 @@ def flush_thread(process,output_queue): outlines += flush_outlines(process) sys.stdout.flush() sys.stderr.flush() - output_queue.put( "".join(outlines)) + output_queue.put("".join(outlines)) - if redirect_stderr_to_stdout: stderr_out = subprocess.STDOUT else: @@ -177,7 +181,13 @@ def flush_thread(process,output_queue): to accomplish this we use multiprocessing in combination with error catching to interupt the logging if needed """ output_queue = Queue() - logger_process = Process(target=flush_thread, args=(shell_process,output_queue,)) + logger_process = Process( + target=flush_thread, + args=( + shell_process, + output_queue, + ), + ) logger_process.start() outs, errs = shell_process.communicate(input=std_input, timeout=timeout) retcode = shell_process.poll() @@ -197,19 +207,18 @@ def flush_thread(process,output_queue): shell_process.kill() raise err - #not a sucsessfull execution and not an alowed exit code - #raise the appropriate error + # not a sucsessfull execution and not an alowed exit code + # raise the appropriate error if not sucsess(retcode) and retcode not in ignore_ret_codes: raise subprocess.CalledProcessError( retcode, shell_process.args, - ) - #not a sucsessfull execution but an alowed exit code - #append the error to the output + ) + # not a sucsessfull execution but an alowed exit code + # append the error to the output if not sucsess(retcode): output += shell_process.stderr.read() - if print_output and not output_is_log: if "" != output.strip(): print("[OUT]") @@ -217,16 +226,3 @@ def flush_thread(process,output_queue): assert isinstance(output, str) return output - -def test(): - a = shell_out_new("ssh user@host -p 57429 'perf stat sleep 1'",print_output=True,output_is_log=True) - print("--------------------") - print(a) - shell_out_new(['ssh', 'user@host', '-p', '57429', '-t', 'perf stat sleep 1']) - main_command_ast = makecommand.command("sleep",["1"]) - full_command = makecommand.command("perf stat",[inline(main_command_ast)]) - remote_command = execute_on_remote(full_command,"user@host",port=57429) - shell_out_new(remote_command) - -if __name__ == "__main__": - test() \ No newline at end of file diff --git a/benchkit/shell/commandAST/Visitors/print_visitor.py b/benchkit/shell/commandAST/Visitors/print_visitor.py index bf178700..6823e73a 100644 --- a/benchkit/shell/commandAST/Visitors/print_visitor.py +++ b/benchkit/shell/commandAST/Visitors/print_visitor.py @@ -1,3 +1,6 @@ +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + from benchkit.shell.commandAST.abstractTypes import Node, Visitor from benchkit.shell.commandAST.nodes.commandNodes import CommandNode, StringNode from benchkit.shell.commandAST.nodes.variable_node import Var @@ -6,32 +9,33 @@ class printASTVisitor(Visitor): def __init__(self) -> None: self.indent = 0 - def printWithIndent(self,content:str): - print("|"*self.indent + content) - def printType(self,node:Node): + + def printWithIndent(self, content: str): + print("|" * self.indent + content) + + def printType(self, node: Node): self.printWithIndent(type(node).__name__) - def __visitNodeCase(self,node:Node) -> Node: - if isinstance(node,StringNode): + def __visitNodeCase(self, node: Node) -> Node: + if isinstance(node, StringNode): self.printWithIndent(node.argument) node.visit(self) return node - if isinstance(node,CommandNode): + if isinstance(node, CommandNode): node.visit(self) return node - if isinstance(node,Var): + if isinstance(node, Var): self.printWithIndent(node.name) node.visit(self) return node - - return node.visit(self) + return node.visit(self) - def visit_node(self,node:Node) -> Node: + def visit_node(self, node: Node) -> Node: self.printType(node) self.indent += 1 ret = self.__visitNodeCase(node) self.indent -= 1 - return ret \ No newline at end of file + return ret diff --git a/benchkit/shell/commandAST/Visitors/variable_visitors.py b/benchkit/shell/commandAST/Visitors/variable_visitors.py index 8267edc1..cba9067e 100644 --- a/benchkit/shell/commandAST/Visitors/variable_visitors.py +++ b/benchkit/shell/commandAST/Visitors/variable_visitors.py @@ -1,26 +1,34 @@ +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + from typing import Dict, Set + from benchkit.shell.commandAST.abstractTypes import Node, Visitor from benchkit.shell.commandAST.nodes.commandNodes import StringNode from benchkit.shell.commandAST.nodes.variable_node import Var class resolveAllVariables(Visitor): - def __init__(self,assignment:Dict[str,str]) -> None: + def __init__(self, assignment: Dict[str, str]) -> None: self.assignment = assignment - - def visit_node(self,node:Node) -> Node: - if isinstance(node,Var): + + def visit_node(self, node: Node) -> Node: + if isinstance(node, Var): if node.name in self.assignment: return StringNode(self.assignment[node.name]) else: - raise ValueError(f"resolveAllVariables needs a value for all var nodes. Var node with name {node.name} has no assigned value") + raise ValueError( + f"resolveAllVariables needs a value for all var nodes. Var node with name {node.name} has no assigned value" + ) return node.visit(self) - + + class VariableFinder(Visitor): def __init__(self) -> None: - self.variables:Set[Var] = set() - def visit_node(self,node:Node) -> Node: - if isinstance(node,Var): + self.variables: Set[Var] = set() + + def visit_node(self, node: Node) -> Node: + if isinstance(node, Var): self.variables.add(node) node.visit(self) - return node \ No newline at end of file + return node diff --git a/benchkit/shell/commandAST/Visitors/verification_visitors.py b/benchkit/shell/commandAST/Visitors/verification_visitors.py index eba7fec9..2ea7f6d8 100644 --- a/benchkit/shell/commandAST/Visitors/verification_visitors.py +++ b/benchkit/shell/commandAST/Visitors/verification_visitors.py @@ -1,10 +1,15 @@ +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + from benchkit.shell.commandAST.abstractTypes import Node, Visitor from benchkit.shell.commandAST.nodes.commandNodes import CommandNode, StringNode class OnlyStringAndCommandNodesChecker(Visitor): - def visit_node(self,node:Node) -> Node: - if not (isinstance(node,StringNode) or isinstance(node,CommandNode)): - raise TypeError(f"All nodes in the ast need to be of type StringNode or CommandNode before the comand can be executed found node of type {type(node)}") + def visit_node(self, node: Node) -> Node: + if not (isinstance(node, StringNode) or isinstance(node, CommandNode)): + raise TypeError( + f"All nodes in the ast need to be of type StringNode or CommandNode before the comand can be executed found node of type {type(node)}" + ) node.visit(self) - return node \ No newline at end of file + return node diff --git a/benchkit/shell/commandAST/abstractTypes.py b/benchkit/shell/commandAST/abstractTypes.py index 8714bb2b..4b49e6ba 100755 --- a/benchkit/shell/commandAST/abstractTypes.py +++ b/benchkit/shell/commandAST/abstractTypes.py @@ -1,17 +1,23 @@ -#!/usr/bin/env python3 +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + from __future__ import annotations + from abc import ABC, abstractmethod -class Node(ABC): + +class Node(ABC): @abstractmethod - def visit(self,visitor:Visitor) -> Node: + def visit(self, visitor: Visitor) -> Node: """This method defines how the different ellemts of the AST should be traversed - Needs to implemented such that we can always traverse all nodes in a tree""" - + Needs to implemented such that we can always traverse all nodes in a tree""" + + class Visitor(ABC): - def visit_node(self,node:Node) -> Node: - """This method When visiting a node can do manipulations on the node + def visit_node(self, node: Node) -> Node: + """This method When visiting a node can do manipulations on the node and continue the traversal in a custom way""" return node.visit(self) - def visitAST(self,node:Node) -> Node: - return self.visit_node(node) \ No newline at end of file + + def visitAST(self, node: Node) -> Node: + return self.visit_node(node) diff --git a/benchkit/shell/commandAST/command.py b/benchkit/shell/commandAST/command.py index 77aecd4e..8a306e26 100755 --- a/benchkit/shell/commandAST/command.py +++ b/benchkit/shell/commandAST/command.py @@ -1,16 +1,21 @@ - +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT import shlex + from benchkit.shell.commandAST.nodes.commandNodes import * from benchkit.shell.commandAST.nodes.futureNodes import * from benchkit.shell.commandAST.nodes.variable_node import * -def process_program(program:str|Generic|Location) -> StringNode: + +def process_program(program: str | Generic | Location) -> StringNode: if type(program) is str: return StringNode(program.strip()) else: raise TypeError() -def process_argument(argument:str|Node) -> Node: + + +def process_argument(argument: str | Node) -> Node: if type(argument) is str: return StringNode(argument) if isinstance(argument, Node): @@ -18,17 +23,18 @@ def process_argument(argument:str|Node) -> Node: else: raise TypeError(f"argument is of type {type(argument)}") -def command(program:str|Generic|Location, arguments:list[Node|str]|None = None) -> CommandNode: + +def command( + program: str | Generic | Location, arguments: list[Node | str] | None = None +) -> CommandNode: if arguments is None: arguments = [] - if isinstance(program,str): + if isinstance(program, str): ls = shlex.split(program) program = ls[0] extra_argumens = ls[1::] arguments = extra_argumens + arguments if not arguments: - return CommandNode(process_program(program), - None) + return CommandNode(process_program(program), None) else: - return CommandNode(process_program(program), - list(map(process_argument,arguments))) \ No newline at end of file + return CommandNode(process_program(program), list(map(process_argument, arguments))) diff --git a/benchkit/shell/commandAST/nodes/commandNodes.py b/benchkit/shell/commandAST/nodes/commandNodes.py index 8f6e43e2..9fb5b06a 100644 --- a/benchkit/shell/commandAST/nodes/commandNodes.py +++ b/benchkit/shell/commandAST/nodes/commandNodes.py @@ -1,31 +1,36 @@ +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + from typing import List from benchkit.shell.commandAST.abstractTypes import * + class StringNode(Node): - def __init__(self,argument:str) -> None: - self.argument=argument - def visit(self,visitor:Visitor): + def __init__(self, argument: str) -> None: + self.argument = argument + + def visit(self, visitor: Visitor): return self class CommandNode(Node): - def __init__(self,command:Node,arguments:None|List[Node]=None) -> None: - self.command:Node =command + def __init__(self, command: Node, arguments: None | List[Node] = None) -> None: + self.command: Node = command if arguments is None: arguments = [] - self.arguments:List[Node]=arguments - - def visit(self,visitor:Visitor): + self.arguments: List[Node] = arguments + + def visit(self, visitor: Visitor): self.command = visitor.visit_node(self.command) self.arguments = list(map(visitor.visit_node, self.arguments)) return self - + + class InlineCommandNode(CommandNode): - def __init__(self, command:CommandNode, arguments:List[Node] | None = None): + def __init__(self, command: CommandNode, arguments: List[Node] | None = None): super().__init__(command, arguments) - def visit(self, visitor:Visitor): + + def visit(self, visitor: Visitor): super().visit(visitor) return self - - \ No newline at end of file diff --git a/benchkit/shell/commandAST/nodes/futureNodes.py b/benchkit/shell/commandAST/nodes/futureNodes.py index d3f30269..a08a43d9 100644 --- a/benchkit/shell/commandAST/nodes/futureNodes.py +++ b/benchkit/shell/commandAST/nodes/futureNodes.py @@ -1,6 +1,15 @@ +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + """to facilitate moving files between platforms""" + + class Location: pass + + """to facilitate tools having different names across platforms""" + + class Generic: - pass \ No newline at end of file + pass diff --git a/benchkit/shell/commandAST/nodes/variable_node.py b/benchkit/shell/commandAST/nodes/variable_node.py index 2eaf5ad3..497e6dbe 100755 --- a/benchkit/shell/commandAST/nodes/variable_node.py +++ b/benchkit/shell/commandAST/nodes/variable_node.py @@ -1,16 +1,22 @@ -#!/usr/bin/env python3 +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + +from typing import Any, List + +from benchkit.shell.commandAST.abstractTypes import Node, Visitor -from typing import List, Any -from benchkit.shell.commandAST.abstractTypes import Visitor, Node class Var(Node): """ Class for variables that we can use to do Parameterization """ - def __init__(self, - name:str, - parameter_range:None|List[Any]=None, - parameter_options:None|List[Any]=None): + + def __init__( + self, + name: str, + parameter_range: None | List[Any] = None, + parameter_options: None | List[Any] = None, + ): # Make it so you can not instanciate this class if type(self) is Var: raise TypeError("Can not instanciate generic variables") @@ -26,20 +32,20 @@ def __init__(self, self.name = name self.id = id(self) - def visit(self,visitor:Visitor): + def visit(self, visitor: Visitor): return self + class RuntimeVariable(Var): """Type used to designate a variable as a runtime variable - ex: Number of threads, size of the array we want to sort""" + ex: Number of threads, size of the array we want to sort""" + class BuildVariable(Var): """Type used to deignate a variable as a build variable - ex: optimization level of gcc compiler, """ + ex: optimization level of gcc compiler,""" + class SetupVariable(Var): """Type used to deignate a variable as a settup time variable - ex: variables that decide the shedular""" - -if __name__ == "__main__": - a = RuntimeVariable("13") + ex: variables that decide the shedular""" diff --git a/benchkit/shell/commandAST/test.py b/benchkit/shell/commandAST/test.py deleted file mode 100755 index 4fff7dcc..00000000 --- a/benchkit/shell/commandAST/test.py +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env python3 - -from benchkit.shell.commandAST.command import command -from benchkit.shell.commandAST.nodes.variable_node import RuntimeVariable -from benchkit.shell.commandAST.visitor import printAst - - -def localtests(): - - commandres = command("'ls -R'",["arg0","arg1"]) - print("-------------------------------------------") - printAst(commandres) - commandres = command("'ls -R '",["arg0","arg1"]) - print("-------------------------------------------") - printAst(commandres) - commandres = command("' ls -R'",["arg0","arg1"]) - print("-------------------------------------------") - printAst(commandres) - commandres = command("ls -R",["arg0","arg1"]) - print("-------------------------------------------") - printAst(commandres) - commandres = command("ls -R ",["arg0","arg1"]) - print("-------------------------------------------") - printAst(commandres) - commandres = command(" ls -R",["arg0","arg1"]) - print("-------------------------------------------") - printAst(commandres) - commandres = command("ls -R",["arg0","arg1"]) - print("-------------------------------------------") - printAst(commandres) - commandres = command("ls",["arg0","arg1"]) - print("-------------------------------------------") - printAst(commandres) - print("-------------------------------------------") - commandres = command("ls -R",[RuntimeVariable("QQ",[1,2]),"arg1"]) - printAst(commandres) - -if __name__ == "__main__": - - - - localtests() \ No newline at end of file diff --git a/benchkit/shell/commandAST/visitor.py b/benchkit/shell/commandAST/visitor.py index ca3ac28b..1e3ff296 100755 --- a/benchkit/shell/commandAST/visitor.py +++ b/benchkit/shell/commandAST/visitor.py @@ -1,38 +1,47 @@ -#!/usr/bin/env python3 +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT import shlex import subprocess from typing import Dict -from benchkit.shell.commandAST.Visitors.print_visitor import printASTVisitor -from benchkit.shell.commandAST.Visitors.variable_visitors import VariableFinder, resolveAllVariables -from benchkit.shell.commandAST.Visitors.verification_visitors import OnlyStringAndCommandNodesChecker + from benchkit.shell.commandAST.abstractTypes import * from benchkit.shell.commandAST.abstractTypes import Node +from benchkit.shell.commandAST.command import command from benchkit.shell.commandAST.nodes.commandNodes import * from benchkit.shell.commandAST.nodes.variable_node import * -from benchkit.shell.commandAST.command import command - -def VariableDuplicateDetector(ast:Node): +from benchkit.shell.commandAST.Visitors.print_visitor import printASTVisitor +from benchkit.shell.commandAST.Visitors.variable_visitors import ( + VariableFinder, + resolveAllVariables, +) +from benchkit.shell.commandAST.Visitors.verification_visitors import ( + OnlyStringAndCommandNodesChecker, +) + + +def VariableDuplicateDetector(ast: Node): variable_finder = VariableFinder() variable_finder.visitAST(ast) - var_names = list(map(lambda x: x.name,variable_finder.variables)) + var_names = list(map(lambda x: x.name, variable_finder.variables)) for var_name in var_names: - if var_names.count(var_name) >=2: + if var_names.count(var_name) >= 2: raise NameError(f"The variable name {var_name} occures in two sepperate objects") -def CheckReadyForConversionToCommand(ast:CommandNode): - #TODO: I want to make a grammar checker this will do for now + +def CheckReadyForConversionToCommand(ast: CommandNode): + # TODO: I want to make a grammar checker this will do for now check = OnlyStringAndCommandNodesChecker() ast.visit(check) - -def convertComandToString(ast:CommandNode) -> str: + +def convertComandToString(ast: CommandNode) -> str: class CommandToStringVisitor(Visitor): def visit_node(self, node: Node) -> Node: - if isinstance(node,CommandNode): + if isinstance(node, CommandNode): new_arg_list = [] for arg in node.arguments: - if isinstance(arg,InlineCommandNode): + if isinstance(arg, InlineCommandNode): converted_ast = arg.visit(converter) new_arg_list.append(converted_ast.command) new_arg_list += converted_ast.arguments @@ -46,24 +55,27 @@ def visit_node(self, node: Node) -> Node: converted_ast = ast.visit(converter) args = [x.argument for x in converted_ast.arguments] - args.insert(0,converted_ast.command.argument) + args.insert(0, converted_ast.command.argument) print(args) return shlex.join(args) + # Functions to hide away visitors -def printAst(ast:Node): +def printAst(ast: Node): v = printASTVisitor() v.visitAST(ast) -def resolveAllVariablesWithDict(ast:Node,d:Dict[str,str]): + +def resolveAllVariablesWithDict(ast: Node, d: Dict[str, str]): variable_resolver = resolveAllVariables(d) # check if amountOfTimeToSleep is not used twice in the command by dfferent vars resulting in wrong assignment possibly VariableDuplicateDetector(ast) - + # Resolve the vars given an assignment dictionairy return variable_resolver.visitAST(ast) -def getString(ast:Node): + +def getString(ast: Node): # Make sure that the command has been sufficiently resolved by visitors, aka there are no leftovers from bad patterns CheckReadyForConversionToCommand(ast) @@ -71,59 +83,10 @@ def getString(ast:Node): # Convert the ast to a string and print it return convertComandToString(ast) -def execute_on_remote(ast:Node,host:str,port:int) -> Node: - return command("ssh", [host, "-p",str(port), "-t", ast]) - -def inline(ast:CommandNode) -> InlineCommandNode: - return InlineCommandNode(ast.command,ast.arguments) - - -""" -Tests for the file to show that the functions are working -""" -def localtests(): - amount_of_time_to_sleep = RuntimeVariable("amountOfTimeToSleep",[1,2,5,40]) - main_command_ast = command("sleep",[amount_of_time_to_sleep]) - full_command = command("perf stat",[inline(main_command_ast), "-a"]) - remote_command = execute_on_remote(full_command,"user@host",port=57429) - printAst(remote_command) - - resolved_command = resolveAllVariablesWithDict( - remote_command,{ - "amountOfTimeToSleep":"40", - }) - - string = getString(resolved_command) - - print(string) - -def newtest(): - c = command("ssh user@host -p 57429 -t 'perf stat sleep 1'") - printAst(c) - string = getString(c) - print(string) - -def runtest(): - t = shlex.split("perf stat 'sleep 10' -a") - print(t) - - main_command_ast = command("sleep",["1"]) - full_command = command("perf stat",[inline(main_command_ast)]) - remote_command = execute_on_remote(full_command,"user@host",port=57429) - printAst(remote_command) - string = getString(remote_command) - print(string) - local_proc_1 = subprocess.Popen(string, shell=True, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - outs, errs = local_proc_1.communicate() - retcode = local_proc_1.poll() - output = outs - print(retcode) - print(str(output.decode("utf-8"))) - - -if __name__ == "__main__": - localtests() - newtest() - runtest() + +def execute_on_remote(ast: Node, host: str, port: int) -> Node: + return command("ssh", [host, "-p", str(port), "-t", ast]) + + +def inline(ast: CommandNode) -> InlineCommandNode: + return InlineCommandNode(ast.command, ast.arguments) diff --git a/tests/ast-shell/ast_shell.py b/tests/ast-shell/ast_shell.py new file mode 100644 index 00000000..f1dbee98 --- /dev/null +++ b/tests/ast-shell/ast_shell.py @@ -0,0 +1,118 @@ +# Copyright (C) 2025 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + +import shlex +import subprocess + +from benchkit.shell.ast_shell_out import shell_out_new +from benchkit.shell.commandAST import command as makecommand +from benchkit.shell.commandAST.nodes.variable_node import RuntimeVariable +from benchkit.shell.commandAST.visitor import ( + execute_on_remote, + getString, + inline, + printAst, + resolveAllVariablesWithDict, +) + + +def commandtests(): + + commandres = makecommand.command("'ls -R'", ["arg0", "arg1"]) + print("-------------------------------------------") + printAst(commandres) + commandres = makecommand.command("'ls -R '", ["arg0", "arg1"]) + print("-------------------------------------------") + printAst(commandres) + commandres = makecommand.command("' ls -R'", ["arg0", "arg1"]) + print("-------------------------------------------") + printAst(commandres) + commandres = makecommand.command("ls -R", ["arg0", "arg1"]) + print("-------------------------------------------") + printAst(commandres) + commandres = makecommand.command("ls -R ", ["arg0", "arg1"]) + print("-------------------------------------------") + printAst(commandres) + commandres = makecommand.command(" ls -R", ["arg0", "arg1"]) + print("-------------------------------------------") + printAst(commandres) + commandres = makecommand.command("ls -R", ["arg0", "arg1"]) + print("-------------------------------------------") + printAst(commandres) + commandres = makecommand.command("ls", ["arg0", "arg1"]) + print("-------------------------------------------") + printAst(commandres) + print("-------------------------------------------") + commandres = makecommand.command("ls -R", [RuntimeVariable("QQ", [1, 2]), "arg1"]) + + +""" +Tests for the file to show that the functions are working +""" + + +def localtests(): + amount_of_time_to_sleep = RuntimeVariable("amountOfTimeToSleep", [1, 2, 5, 40]) + main_command_ast = makecommand.command("sleep", [amount_of_time_to_sleep]) + full_command = makecommand.command("perf stat", [inline(main_command_ast), "-a"]) + remote_command = execute_on_remote(full_command, "user@host", port=57429) + printAst(remote_command) + + resolved_command = resolveAllVariablesWithDict( + remote_command, + { + "amountOfTimeToSleep": "40", + }, + ) + + string = getString(resolved_command) + + print(string) + + +def newtest(): + c = makecommand.command("ssh user@host -p 57429 -t 'perf stat sleep 1'") + printAst(c) + string = getString(c) + print(string) + + +def runtest(): + t = shlex.split("perf stat 'sleep 10' -a") + print(t) + + main_command_ast = makecommand.command("sleep", ["1"]) + full_command = makecommand.command("perf stat", [inline(main_command_ast)]) + remote_command = execute_on_remote(full_command, "user@host", port=57429) + printAst(remote_command) + string = getString(remote_command) + print(string) + local_proc_1 = subprocess.Popen( + string, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE + ) + outs, errs = local_proc_1.communicate() + retcode = local_proc_1.poll() + output = outs + print(retcode) + print(str(output.decode("utf-8"))) + + +def test(): + a = shell_out_new( + "ssh user@host -p 57429 'perf stat sleep 1'", print_output=True, output_is_log=True + ) + print("--------------------") + print(a) + shell_out_new(["ssh", "user@host", "-p", "57429", "-t", "perf stat sleep 1"]) + main_command_ast = makecommand.command("sleep", ["1"]) + full_command = makecommand.command("perf stat", [inline(main_command_ast)]) + remote_command = execute_on_remote(full_command, "user@host", port=57429) + shell_out_new(remote_command) + + +if __name__ == "__main__": + commandtests() + localtests() + newtest() + runtest() + test() From 5792afd99799b9a51aeb76dff18b2897fef55929 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Wed, 21 May 2025 10:07:15 +0200 Subject: [PATCH 03/71] fix pylint errors in /benchkit/shell/ --- .../CommunicationLayer/comunication_handle.py | 12 +++++++----- benchkit/shell/ast_shell_out.py | 17 ++++++++++------- .../commandAST/Visitors/variable_visitors.py | 3 ++- .../Visitors/verification_visitors.py | 3 ++- benchkit/shell/commandAST/command.py | 6 +++--- benchkit/shell/commandAST/nodes/commandNodes.py | 2 +- benchkit/shell/commandAST/visitor.py | 16 ++++++++++------ 7 files changed, 35 insertions(+), 24 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/comunication_handle.py b/benchkit/shell/CommunicationLayer/comunication_handle.py index b7594e52..bd4bbf85 100644 --- a/benchkit/shell/CommunicationLayer/comunication_handle.py +++ b/benchkit/shell/CommunicationLayer/comunication_handle.py @@ -6,7 +6,8 @@ class Output(ABC): - """interface to communicate with command output on all platforms, functions are due to compatibility""" + """interface to communicate with command output on all platforms, + functions are due to compatibility""" @abstractmethod def readOut(self, amount_of_bytes: int) -> bytes: @@ -73,13 +74,14 @@ def getWriterFdErr(self) -> int: -> how does it react when the stream has been closed => these need to become documented so that further implementations can follow it -OutClosed has been removed due to there being no way to detect this withou blocking for the local intreface +OutClosed has been removed due to there being no way to detect this without +blocking for the local intreface -> detecting if there is stil data needs to be done manualy in the hooks - -> if you recieve a b'' no further data will be readable + -> if you recieve a b'' no further data will be readable - -CommandPassthrough can we fill the buffer and what happens if we do + +CommandPassthrough can we fill the buffer and what happens if we do -> if hooks dont clear it fast enough what will happen -> test this diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 85a12fe2..e408a3c1 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -11,13 +11,13 @@ from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.commandNodes import CommandNode -from benchkit.shell.commandAST.visitor import execute_on_remote, getString, inline +from benchkit.shell.commandAST.visitor import getString def shell_out_new( command: str | List[str] | CommandNode, std_input: Optional[str] = None, - redirect_stderr_to_stdout: bool = True, # New feature, since the old implementation did this by deafault but we now have controll over it + redirect_stderr_to_stdout: bool = True, # New feature current_dir: Optional[pathlib.Path | os.PathLike | str] = None, environment: None | Dict[str, str] = None, # shell: bool = False, Support REMOVED @@ -84,7 +84,8 @@ def shell_out_new( Defaults to (). split_arguments (bool, optional): whether the command is split in parts. - This allows for the usage of commands using things like the pipe symbol, use with shell=True for this functionality. + This allows for the usage of commands using things like the pipe symbol, + use with shell=True for this functionality. Defaults to True. Raises: @@ -113,7 +114,8 @@ def sucsess(value): commandTree = command else: raise TypeError( - f"Shell out was called with a command of type {type(command)}, this is unexpected and not suported" + f"Shell out was called with a command of type {type(command)}," + "this is unexpected and not suported" ) # Use the visitor patterns to convert our tree to an executable string @@ -170,15 +172,16 @@ def flush_thread(process, output_queue): cwd=current_dir, env=environment, stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, + stderr=stderr_out, stdin=subprocess.PIPE, text=True, ) as shell_process: if output_is_log: try: """ - logging the process takes two threads since we need to wait for the timeout while logging stdout in real time - to accomplish this we use multiprocessing in combination with error catching to interupt the logging if needed + logging the process takes two threads since we need to wait for the timeout + while logging stdout in real time, to accomplish this we use multiprocessing + in combination with error catching to interupt the logging if needed """ output_queue = Queue() logger_process = Process( diff --git a/benchkit/shell/commandAST/Visitors/variable_visitors.py b/benchkit/shell/commandAST/Visitors/variable_visitors.py index cba9067e..d47c424b 100644 --- a/benchkit/shell/commandAST/Visitors/variable_visitors.py +++ b/benchkit/shell/commandAST/Visitors/variable_visitors.py @@ -18,7 +18,8 @@ def visit_node(self, node: Node) -> Node: return StringNode(self.assignment[node.name]) else: raise ValueError( - f"resolveAllVariables needs a value for all var nodes. Var node with name {node.name} has no assigned value" + f"resolveAllVariables needs a value for all var nodes." + f"Var node with name {node.name} has no assigned value" ) return node.visit(self) diff --git a/benchkit/shell/commandAST/Visitors/verification_visitors.py b/benchkit/shell/commandAST/Visitors/verification_visitors.py index 2ea7f6d8..530be6e1 100644 --- a/benchkit/shell/commandAST/Visitors/verification_visitors.py +++ b/benchkit/shell/commandAST/Visitors/verification_visitors.py @@ -9,7 +9,8 @@ class OnlyStringAndCommandNodesChecker(Visitor): def visit_node(self, node: Node) -> Node: if not (isinstance(node, StringNode) or isinstance(node, CommandNode)): raise TypeError( - f"All nodes in the ast need to be of type StringNode or CommandNode before the comand can be executed found node of type {type(node)}" + f"All nodes in the ast need to be of type StringNode or CommandNode" + f"before the comand can be executed found node of type {type(node)}" ) node.visit(self) return node diff --git a/benchkit/shell/commandAST/command.py b/benchkit/shell/commandAST/command.py index 8a306e26..fc2d4f41 100755 --- a/benchkit/shell/commandAST/command.py +++ b/benchkit/shell/commandAST/command.py @@ -3,9 +3,9 @@ import shlex -from benchkit.shell.commandAST.nodes.commandNodes import * -from benchkit.shell.commandAST.nodes.futureNodes import * -from benchkit.shell.commandAST.nodes.variable_node import * +from benchkit.shell.commandAST.nodes.commandNodes import CommandNode, StringNode +from benchkit.shell.commandAST.nodes.futureNodes import Generic, Location +from benchkit.shell.commandAST.nodes.variable_node import Node def process_program(program: str | Generic | Location) -> StringNode: diff --git a/benchkit/shell/commandAST/nodes/commandNodes.py b/benchkit/shell/commandAST/nodes/commandNodes.py index 9fb5b06a..dfcddf40 100644 --- a/benchkit/shell/commandAST/nodes/commandNodes.py +++ b/benchkit/shell/commandAST/nodes/commandNodes.py @@ -3,7 +3,7 @@ from typing import List -from benchkit.shell.commandAST.abstractTypes import * +from benchkit.shell.commandAST.abstractTypes import Node, Visitor class StringNode(Node): diff --git a/benchkit/shell/commandAST/visitor.py b/benchkit/shell/commandAST/visitor.py index 1e3ff296..1effdc7d 100755 --- a/benchkit/shell/commandAST/visitor.py +++ b/benchkit/shell/commandAST/visitor.py @@ -2,14 +2,16 @@ # SPDX-License-Identifier: MIT import shlex -import subprocess from typing import Dict -from benchkit.shell.commandAST.abstractTypes import * from benchkit.shell.commandAST.abstractTypes import Node from benchkit.shell.commandAST.command import command -from benchkit.shell.commandAST.nodes.commandNodes import * -from benchkit.shell.commandAST.nodes.variable_node import * +from benchkit.shell.commandAST.nodes.commandNodes import CommandNode +from benchkit.shell.commandAST.nodes.variable_node import ( + InlineCommandNode, + StringNode, + Visitor, +) from benchkit.shell.commandAST.Visitors.print_visitor import printASTVisitor from benchkit.shell.commandAST.Visitors.variable_visitors import ( VariableFinder, @@ -68,7 +70,8 @@ def printAst(ast: Node): def resolveAllVariablesWithDict(ast: Node, d: Dict[str, str]): variable_resolver = resolveAllVariables(d) - # check if amountOfTimeToSleep is not used twice in the command by dfferent vars resulting in wrong assignment possibly + # check if amountOfTimeToSleep is not used twice in the command + # by dfferent vars resulting in wrong assignment possibly VariableDuplicateDetector(ast) # Resolve the vars given an assignment dictionairy @@ -77,7 +80,8 @@ def resolveAllVariablesWithDict(ast: Node, d: Dict[str, str]): def getString(ast: Node): - # Make sure that the command has been sufficiently resolved by visitors, aka there are no leftovers from bad patterns + # Make sure that the command has been sufficiently resolved by visitors + # aka there are no leftovers from bad patterns CheckReadyForConversionToCommand(ast) # Convert the ast to a string and print it From 5cde1db82623b6969b5448624a10d80b60c64b83 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Wed, 21 May 2025 10:31:38 +0200 Subject: [PATCH 04/71] fix a mistake in the imports of the visitor --- benchkit/shell/ast_shell_out.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index e408a3c1..8474e672 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -178,12 +178,12 @@ def flush_thread(process, output_queue): ) as shell_process: if output_is_log: try: - """ - logging the process takes two threads since we need to wait for the timeout - while logging stdout in real time, to accomplish this we use multiprocessing - in combination with error catching to interupt the logging if needed - """ - output_queue = Queue() + + # logging the process takes two threads since we need to wait for the timeout + # while logging stdout in real time, to accomplish this we use multiprocessing + # in combination with error catching to interupt the logging if needed + + output_queue:Queue = Queue() logger_process = Process( target=flush_thread, args=( From 0c79d2cf134fe66f4a8f3760549004b5b96f5f3f Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Wed, 21 May 2025 13:28:23 +0200 Subject: [PATCH 05/71] fixes a bug where output logging was incomplete, along with minor bugfixes --- benchkit/shell/ast_shell_out.py | 59 ++++++++++++++-------------- benchkit/shell/commandAST/visitor.py | 4 +- tests/ast-shell/ast_shell.py | 41 ++++++++++++++----- 3 files changed, 61 insertions(+), 43 deletions(-) diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 8474e672..76dd0519 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -16,7 +16,7 @@ def shell_out_new( command: str | List[str] | CommandNode, - std_input: Optional[str] = None, + std_input: str | None = None, redirect_stderr_to_stdout: bool = True, # New feature current_dir: Optional[pathlib.Path | os.PathLike | str] = None, environment: None | Dict[str, str] = None, @@ -121,7 +121,15 @@ def sucsess(value): # Use the visitor patterns to convert our tree to an executable string stringCommand = getString(commandTree) - def flush_outlines(process): + + def try_conventing_bystring_to_readable_characters(bytestring): + try: + bytestring = bytestring.decode('utf-8') + except Exception: + pass + return bytestring + + def flush_outlines(std_in): """ prints and returns the current content of stdout for a given process Args: @@ -131,35 +139,24 @@ def flush_outlines(process): str: content of stdout. """ outlines = [] - outline = process.stdout.readline() + outline = try_conventing_bystring_to_readable_characters(std_in.readline()) + while outline: print(outline, end="") outlines.append(outline) - outline = process.stdout.readline() + outline = try_conventing_bystring_to_readable_characters(std_in.readline()) return outlines - def flush_thread(process, output_queue): + def flush_thread(std_in, std_err, output_queue): """ while process is running will log and store all stdout in real time Args: - process (Popen): - process to log output_queue (Queue): Queue to write the returned value to Returns: None """ - outlines = [] - retcode = process.poll() - while retcode is None: - outlines += flush_outlines(process) - retcode = process.poll() - print(retcode) - print("not flushed") - outlines += flush_outlines(process) - sys.stdout.flush() - sys.stderr.flush() - output_queue.put("".join(outlines)) + output_queue.put("".join(flush_outlines(std_in))) if redirect_stderr_to_stdout: stderr_out = subprocess.STDOUT @@ -174,26 +171,30 @@ def flush_thread(process, output_queue): stdout=subprocess.PIPE, stderr=stderr_out, stdin=subprocess.PIPE, - text=True, ) as shell_process: + if shell_process.stdin is not None and std_input is not None: + shell_process.stdin.write(std_input.encode('utf-8')) + if output_is_log: try: # logging the process takes two threads since we need to wait for the timeout # while logging stdout in real time, to accomplish this we use multiprocessing # in combination with error catching to interupt the logging if needed - output_queue:Queue = Queue() logger_process = Process( target=flush_thread, args=( - shell_process, + shell_process.stdout, + shell_process.stderr, output_queue, ), ) logger_process.start() - outs, errs = shell_process.communicate(input=std_input, timeout=timeout) - retcode = shell_process.poll() + logger_process.daemon = True + retcode = shell_process.wait(timeout=timeout) + logger_process.join() + print(f"retcode seq {retcode}") output = output_queue.get() except subprocess.TimeoutExpired as err: @@ -203,9 +204,11 @@ def flush_thread(process, output_queue): else: try: - outs, errs = shell_process.communicate(input=std_input, timeout=timeout) - retcode = shell_process.poll() - output = outs + retcode = shell_process.wait(timeout=timeout) + if shell_process.stdout is None: + output = "" + else: + output = try_conventing_bystring_to_readable_characters(shell_process.stdout.read()) except subprocess.TimeoutExpired as err: shell_process.kill() raise err @@ -217,10 +220,6 @@ def flush_thread(process, output_queue): retcode, shell_process.args, ) - # not a sucsessfull execution but an alowed exit code - # append the error to the output - if not sucsess(retcode): - output += shell_process.stderr.read() if print_output and not output_is_log: if "" != output.strip(): diff --git a/benchkit/shell/commandAST/visitor.py b/benchkit/shell/commandAST/visitor.py index 1effdc7d..0eb0e188 100755 --- a/benchkit/shell/commandAST/visitor.py +++ b/benchkit/shell/commandAST/visitor.py @@ -6,10 +6,8 @@ from benchkit.shell.commandAST.abstractTypes import Node from benchkit.shell.commandAST.command import command -from benchkit.shell.commandAST.nodes.commandNodes import CommandNode +from benchkit.shell.commandAST.nodes.commandNodes import CommandNode, InlineCommandNode, StringNode from benchkit.shell.commandAST.nodes.variable_node import ( - InlineCommandNode, - StringNode, Visitor, ) from benchkit.shell.commandAST.Visitors.print_visitor import printASTVisitor diff --git a/tests/ast-shell/ast_shell.py b/tests/ast-shell/ast_shell.py index f1dbee98..7e4fdfe9 100644 --- a/tests/ast-shell/ast_shell.py +++ b/tests/ast-shell/ast_shell.py @@ -98,21 +98,42 @@ def runtest(): def test(): + + # THE TWO EXAMPLES BELOW DONT HALT + # They exist to show that functions work in an intuative manner. + + # To show that output is log works + # a = shell_out_new( + # "ssh aaronb@soft24.vub.ac.be -p 22 'cat /dev/random'", print_output=True, output_is_log=True + # ) + # print("--------------------") + # print(a) + # To show that input works + # shell_out_new( + # "ssh aaronb@soft24.vub.ac.be -p 22 'cat'", output_is_log=True, std_input="wafel\n" \ + # "aeu aeu\n" + # ) + + a = shell_out_new( - "ssh user@host -p 57429 'perf stat sleep 1'", print_output=True, output_is_log=True + "ssh aaronb@soft24.vub.ac.be -p 22 'perf stat sleep 1'", print_output=True ) print("--------------------") print(a) - shell_out_new(["ssh", "user@host", "-p", "57429", "-t", "perf stat sleep 1"]) - main_command_ast = makecommand.command("sleep", ["1"]) - full_command = makecommand.command("perf stat", [inline(main_command_ast)]) - remote_command = execute_on_remote(full_command, "user@host", port=57429) - shell_out_new(remote_command) + + + + + # shell_out_new(["ssh", "user@host", "-p", "57429", "-t", "perf stat sleep 1"]) + # main_command_ast = makecommand.command("sleep", ["1"]) + # full_command = makecommand.command("perf stat", [inline(main_command_ast)]) + # remote_command = execute_on_remote(full_command, "user@host", port=57429) + # shell_out_new(remote_command) if __name__ == "__main__": - commandtests() - localtests() - newtest() - runtest() + # commandtests() + # localtests() + # newtest() + # runtest() test() From 0ed91a5a4d62cd99c4b98abcc54670d855812c8d Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Wed, 21 May 2025 13:44:04 +0200 Subject: [PATCH 06/71] fix the ordering for the thead --- benchkit/shell/ast_shell_out.py | 2 +- tests/ast-shell/ast_shell.py | 16 ++++++---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 76dd0519..94a378f8 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -190,8 +190,8 @@ def flush_thread(std_in, std_err, output_queue): output_queue, ), ) - logger_process.start() logger_process.daemon = True + logger_process.start() retcode = shell_process.wait(timeout=timeout) logger_process.join() print(f"retcode seq {retcode}") diff --git a/tests/ast-shell/ast_shell.py b/tests/ast-shell/ast_shell.py index 7e4fdfe9..d1036af0 100644 --- a/tests/ast-shell/ast_shell.py +++ b/tests/ast-shell/ast_shell.py @@ -116,19 +116,15 @@ def test(): a = shell_out_new( - "ssh aaronb@soft24.vub.ac.be -p 22 'perf stat sleep 1'", print_output=True + "ssh aaronb@soft24.vub.ac.be -p 22 'perf stat sleep 1'", print_output=True, output_is_log=True ) print("--------------------") print(a) - - - - - # shell_out_new(["ssh", "user@host", "-p", "57429", "-t", "perf stat sleep 1"]) - # main_command_ast = makecommand.command("sleep", ["1"]) - # full_command = makecommand.command("perf stat", [inline(main_command_ast)]) - # remote_command = execute_on_remote(full_command, "user@host", port=57429) - # shell_out_new(remote_command) + shell_out_new(["ssh", "user@host", "-p", "57429", "-t", "perf stat sleep 1"]) + main_command_ast = makecommand.command("sleep", ["1"]) + full_command = makecommand.command("perf stat", [inline(main_command_ast)]) + remote_command = execute_on_remote(full_command, "user@host", port=57429) + shell_out_new(remote_command) if __name__ == "__main__": From 940ef7e4f6c2db76f61a07fec3af686795ab2eda Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Wed, 21 May 2025 13:58:46 +0200 Subject: [PATCH 07/71] fix a bug where input would not always get flushed to the command --- benchkit/shell/ast_shell_out.py | 1 + 1 file changed, 1 insertion(+) diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 94a378f8..5995f3f0 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -174,6 +174,7 @@ def flush_thread(std_in, std_err, output_queue): ) as shell_process: if shell_process.stdin is not None and std_input is not None: shell_process.stdin.write(std_input.encode('utf-8')) + shell_process.stdin.flush() if output_is_log: try: From 65b781431e7d9f054e4565fa86fa478b6c28f8bf Mon Sep 17 00:00:00 2001 From: aaronbog <48908435+aaronbog@users.noreply.github.com> Date: Sat, 24 May 2025 16:22:10 +0200 Subject: [PATCH 08/71] switch logging to commandhooks --- .../CommunicationLayer/comunication_handle.py | 101 +++++++--- benchkit/shell/CommunicationLayer/hook.py | 176 ++++++++++++++++++ benchkit/shell/ast_shell_out.py | 114 +++++------- tests/ast-shell/ast_shell.py | 30 +-- 4 files changed, 308 insertions(+), 113 deletions(-) create mode 100644 benchkit/shell/CommunicationLayer/hook.py diff --git a/benchkit/shell/CommunicationLayer/comunication_handle.py b/benchkit/shell/CommunicationLayer/comunication_handle.py index bd4bbf85..6964d7b9 100644 --- a/benchkit/shell/CommunicationLayer/comunication_handle.py +++ b/benchkit/shell/CommunicationLayer/comunication_handle.py @@ -1,6 +1,7 @@ # Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. # SPDX-License-Identifier: MIT +from io import BufferedReader import os from abc import ABC, abstractmethod @@ -9,24 +10,71 @@ class Output(ABC): """interface to communicate with command output on all platforms, functions are due to compatibility""" - @abstractmethod - def readOut(self, amount_of_bytes: int) -> bytes: - """reads at most amount_of_bytes from the available stdout""" - pass + def __init__(self): + self.__bufferd_out:bytes = b'' + self.__bufferd_err:bytes = b'' + self.a = 2 - @abstractmethod - def readErr(self, amount_of_bytes: int) -> bytes: - """reads at most amount_of_bytes from the available stderr""" - pass @abstractmethod - def getReaderFdOut(self) -> int: + def _read_bytes_out(self, amount_of_bytes: int) -> bytes: pass - + @abstractmethod - def getReaderFdErr(self) -> int: + def _read_bytes_err(self, amount_of_bytes: int) -> bytes: pass + def readOut(self, amount_of_bytes: int) -> bytes: + """reads at most amount_of_bytes from the available stdout""" + if self.__bufferd_out: + ret = self.__bufferd_out + self.__bufferd_out = b'' + self.a = 0 + return ret + self.a += 1 + # print(f'come from buffer non {self.a}') + return self._read_bytes_out(amount_of_bytes) + + def readErr(self, amount_of_bytes: int) -> bytes: + """reads at most amount_of_bytes from the available stderr""" + if self.__bufferd_err: + ret = self.__bufferd_err + self.__bufferd_err = b'' + return ret + return self._read_bytes_err(amount_of_bytes) + + def readOut_line(self) -> bytes: + byt = self.readOut(10) + while byt: + sp = byt.split(b'\n') + if len(sp) > 1: + self.__bufferd_out = sp[1] + return sp[0] + byt += self.readOut(10) + return byt + + def readErr_line(self) -> bytes: + byt = self.readErr(10) + while byt: + sp = byt.split(b'\n') + if len(sp) > 1: + self.__bufferd_err = sp[1] + return sp[0] + byt += self.readErr(10) + return byt + +class SshOutput(Output): + def __init__(self,out:BufferedReader,err:BufferedReader): + self.__out = out + self.__err = err + super().__init__() + + def _read_bytes_err(self, amount_of_bytes:int) -> bytes: + return self.__err.read(amount_of_bytes) + + def _read_bytes_out(self, amount_of_bytes:int) -> bytes: + return self.__out.read(amount_of_bytes) + class WritableOutput(Output): """A way to create a fileStream that can be used as a CommandOutput by other functions""" @@ -34,36 +82,29 @@ class WritableOutput(Output): def __init__(self) -> None: self.readerOut, self.writerOut = os.pipe() self.readerErr, self.writerErr = os.pipe() + os.set_inheritable(self.readerOut,True) + os.set_inheritable(self.readerErr,True) + os.set_inheritable(self.writerOut,True) + os.set_inheritable(self.writerErr,True) + super().__init__() def writeOut(self, bytes_to_write: bytes) -> None: os.write(self.writerOut, bytes_to_write) - def endWritingOut(self) -> None: - os.close(self.writerOut) - - def readOut(self, amount_of_bytes: int) -> bytes: - return os.read(self.readerOut, amount_of_bytes) - - def getReaderFdOut(self) -> int: - return self.readerOut - - def getWriterFdOut(self) -> int: - return self.writerOut - def writeErr(self, bytes_to_write: bytes) -> None: os.write(self.writerErr, bytes_to_write) + def endWritingOut(self) -> None: + os.close(self.writerOut) + def endWritingErr(self) -> None: os.close(self.writerErr) - def readErr(self, amount_of_bytes: int) -> bytes: - return os.read(self.readerErr, amount_of_bytes) - - def getReaderFdErr(self) -> int: - return self.readerErr + def _read_bytes_out(self, amount_of_bytes: int) -> bytes: + return os.read(self.readerOut, amount_of_bytes) - def getWriterFdErr(self) -> int: - return self.writerErr + def _read_bytes_err(self, amount_of_bytes: int) -> bytes: + return os.read(self.readerErr, amount_of_bytes) """File notes OUTDATED KEPT FOR REFERENCE FOR A BIT diff --git a/benchkit/shell/CommunicationLayer/hook.py b/benchkit/shell/CommunicationLayer/hook.py new file mode 100644 index 00000000..092e4ea3 --- /dev/null +++ b/benchkit/shell/CommunicationLayer/hook.py @@ -0,0 +1,176 @@ +from __future__ import annotations #Otherwise Queue comlains about typing +from abc import ABC, abstractmethod +from multiprocessing import Process, Queue +from typing import Callable +from benchkit.shell.CommunicationLayer.comunication_handle import Output, WritableOutput + + + +# change -> this should be a "result hook" +# -> Hook should be a pastrough hook +# -> Hook should have getPassthrough() removed +# This would allow for composition where every hook needs to end in a result hook (deafault is voiding it -> would be async) + +class OutputBuffer: + def __init__(self,out:Output) -> None: + self.queue:Queue[bytes]=Queue() + self.out=out + + logger_process = Process( + target=self.result_thread, + args=( + self.out, + self.queue, + ), + ) + logger_process.start() + + @staticmethod + def result_thread(out:Output,output_queue:Queue[bytes]) -> None: + outlines:bytes = b'' + outline = out.readOut(10) + while outline: + outlines += outline + outline = out.readOut(10) + output_queue.put(outlines) + + def get_result(self) -> bytes: + output = self.queue.get() + return output + + +class Hook(ABC): + @abstractmethod + def startHookFunction(self,comandOutput:Output) -> None: + pass + + @abstractmethod + def getPassthrough(self) -> WritableOutput: + pass + +class WriterHook(Hook): + def __init__(self,hookFunction:Callable[[Output,WritableOutput],None]): + self.__output = WritableOutput() + self.hookFunction = hookFunction + + def startHookFunction(self,comandOutput:Output): + p = Process( + target=self.hookFunction, + args=( + comandOutput, + self.__output + ) + ) + p.start() + self.__output.endWritingErr() + self.__output.endWritingOut() + + def getPassthrough(self): + return self.__output + + + +class ReaderHook(Hook): + + @staticmethod + def pasAlongStdOut(input:Output ,output:WritableOutput,splitof:WritableOutput,void_stdout:bool): + output.endWritingErr() + splitof.endWritingErr() + + while True: + data = input.readOut(1) + if not data: + break + output.writeOut(data) + if not void_stdout: + splitof.writeOut(data) + output.endWritingOut() + + if not void_stdout: + splitof.endWritingOut() + + @staticmethod + def pasAlongStdErr(input:Output ,output:WritableOutput,splitof:WritableOutput,void_stderr:bool): + + output.endWritingOut() + splitof.endWritingOut() + + while True: + data = input.readErr(1) + if not data: + break + output.writeErr(data) + if not void_stderr: + splitof.writeErr(data) + output.endWritingErr() + + if not void_stderr: + splitof.endWritingErr() + + def __init__(self,hookFunction:Callable[[Output],None],voidStdOut:bool=False,voidStdErr:bool=False): + self.__output = WritableOutput() + self.__splitof = WritableOutput() + self.hookfunction = hookFunction + self.__voidStdErr = voidStdErr + self.__voidStdOut = voidStdOut + + + @staticmethod + def hookwrap(input:WritableOutput,hookfunction:Callable[[Output],None]): + + input.endWritingOut() + input.endWritingErr() + hookfunction(input) + + def startHookFunction(self,comandOutput:Output): + p1 = Process( + target=self.pasAlongStdOut, + args=( + comandOutput, + self.__output, + self.__splitof, + self.__voidStdOut + ) + ) + p2 = Process( + target=self.pasAlongStdErr, + args=( + comandOutput, + self.__output, + self.__splitof, + self.__voidStdErr + ) + ) + p3 = Process( + target=self.hookwrap, + args=( + self.__splitof, + self.hookfunction + ) + ) + p1.start() + p2.start() + p3.start() + self.__output.endWritingErr() + self.__output.endWritingOut() + self.__splitof.endWritingErr() + self.__splitof.endWritingOut() + + def getPassthrough(self): + return self.__output + +""" +file notes +voiding something for the reader function can be done in a more efficient method, +we could create an empty passthrouh for the splitof part and just replace the stdOut in the __output +would need to check if this is a clean solution or more of a hack +the current implementation is consisten and 'clean' albe it with a lot of overhead + + +TODO implement the voiding of certain streams for the writer hooks +this makes it less likely people will make mistakes by ignoring streams and blocking + +TODO implement passtrough of certian streams for writer hooks +this makes it less likely people will make mistakes by ignoring streams and blocking + +""" diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 5995f3f0..b3c6665e 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -5,10 +5,12 @@ import pathlib import shlex import subprocess -import sys from multiprocessing import Process, Queue +from time import sleep from typing import Dict, Iterable, List, Optional +from benchkit.shell.CommunicationLayer.comunication_handle import Output, SshOutput, WritableOutput +from benchkit.shell.CommunicationLayer.hook import OutputBuffer, ReaderHook from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.commandNodes import CommandNode from benchkit.shell.commandAST.visitor import getString @@ -122,47 +124,35 @@ def sucsess(value): stringCommand = getString(commandTree) - def try_conventing_bystring_to_readable_characters(bytestring): + def try_conventing_bystring_to_readable_characters(bytestring:bytes) -> str|bytes: try: - bytestring = bytestring.decode('utf-8') + return bytestring.decode('utf-8') except Exception: - pass - return bytestring - - def flush_outlines(std_in): - """ - prints and returns the current content of stdout for a given process - Args: - process (Popen): - process to log - Returns: - str: content of stdout. - """ - outlines = [] - outline = try_conventing_bystring_to_readable_characters(std_in.readline()) - - while outline: - print(outline, end="") - outlines.append(outline) - outline = try_conventing_bystring_to_readable_characters(std_in.readline()) - return outlines - - def flush_thread(std_in, std_err, output_queue): - """ - while process is running will log and store all stdout in real time - Args: - output_queue (Queue): - Queue to write the returned value to - Returns: - None - """ - output_queue.put("".join(flush_outlines(std_in))) + return bytestring if redirect_stderr_to_stdout: stderr_out = subprocess.STDOUT else: stderr_out = subprocess.PIPE + def logger_hook_out(input:Output): + a = input.readOut_line() + while a: + print(f"\33[34m[OUT | {stringCommand}] {try_conventing_bystring_to_readable_characters(a)}\033[0m") + a = input.readOut_line() + print(f"{a!r}") + print("rhook stdout done") + + def logger_hook_err(input:Output): + a = input.readErr_line() + while a: + print(f"\033[91m[ERR | {stringCommand}] {try_conventing_bystring_to_readable_characters(a)}\033[0m") + a = input.readErr_line() + print("rhook stderr done") + + log_std_out_hook = ReaderHook(logger_hook_out) + log_std_err_hook = ReaderHook(logger_hook_err) + with subprocess.Popen( stringCommand, shell=True, @@ -175,44 +165,26 @@ def flush_thread(std_in, std_err, output_queue): if shell_process.stdin is not None and std_input is not None: shell_process.stdin.write(std_input.encode('utf-8')) shell_process.stdin.flush() + + command_output = SshOutput(shell_process.stdout,shell_process.stderr) if output_is_log: - try: - - # logging the process takes two threads since we need to wait for the timeout - # while logging stdout in real time, to accomplish this we use multiprocessing - # in combination with error catching to interupt the logging if needed - output_queue:Queue = Queue() - logger_process = Process( - target=flush_thread, - args=( - shell_process.stdout, - shell_process.stderr, - output_queue, - ), - ) - logger_process.daemon = True - logger_process.start() - retcode = shell_process.wait(timeout=timeout) - logger_process.join() - print(f"retcode seq {retcode}") - output = output_queue.get() - - except subprocess.TimeoutExpired as err: - shell_process.kill() - logger_process.terminate() - raise err - - else: - try: - retcode = shell_process.wait(timeout=timeout) - if shell_process.stdout is None: - output = "" - else: - output = try_conventing_bystring_to_readable_characters(shell_process.stdout.read()) - except subprocess.TimeoutExpired as err: - shell_process.kill() - raise err + log_std_out_hook.startHookFunction(command_output) + pas = log_std_out_hook.getPassthrough() + log_std_err_hook.startHookFunction(pas) + command_output = log_std_err_hook.getPassthrough() + + try: + + buffer = OutputBuffer(command_output) + retcode = shell_process.wait(timeout=timeout) + output = try_conventing_bystring_to_readable_characters(buffer.get_result()) + + except subprocess.TimeoutExpired as err: + #killing this will send eof to and end the hooks aswell + shell_process.kill() + raise err + # not a sucsessfull execution and not an alowed exit code # raise the appropriate error @@ -227,5 +199,5 @@ def flush_thread(std_in, std_err, output_queue): print("[OUT]") print(output.strip()) - assert isinstance(output, str) + # assert isinstance(output, str) return output diff --git a/tests/ast-shell/ast_shell.py b/tests/ast-shell/ast_shell.py index d1036af0..72ff5cdb 100644 --- a/tests/ast-shell/ast_shell.py +++ b/tests/ast-shell/ast_shell.py @@ -102,29 +102,35 @@ def test(): # THE TWO EXAMPLES BELOW DONT HALT # They exist to show that functions work in an intuative manner. + a = shell_out_new( + "ls", print_output=True, output_is_log=True, redirect_stderr_to_stdout=False + ) + print("--------------------") + print(a) + # To show that output is log works # a = shell_out_new( - # "ssh aaronb@soft24.vub.ac.be -p 22 'cat /dev/random'", print_output=True, output_is_log=True + # "cat /dev/random", print_output=True, output_is_log=True # ) # print("--------------------") # print(a) # To show that input works # shell_out_new( - # "ssh aaronb@soft24.vub.ac.be -p 22 'cat'", output_is_log=True, std_input="wafel\n" \ + # "ssh user@host -p 22 'cat'", output_is_log=True, std_input="wafel\n" \ # "aeu aeu\n" # ) - a = shell_out_new( - "ssh aaronb@soft24.vub.ac.be -p 22 'perf stat sleep 1'", print_output=True, output_is_log=True - ) - print("--------------------") - print(a) - shell_out_new(["ssh", "user@host", "-p", "57429", "-t", "perf stat sleep 1"]) - main_command_ast = makecommand.command("sleep", ["1"]) - full_command = makecommand.command("perf stat", [inline(main_command_ast)]) - remote_command = execute_on_remote(full_command, "user@host", port=57429) - shell_out_new(remote_command) + # a = shell_out_new( + # "ssh user@host -p 22 'perf stat sleep 1'", print_output=True, output_is_log=True,redirect_stderr_to_stdout=False + # ) + # print("--------------------") + # print(a) + # shell_out_new(["ssh", "user@host", "-p", "57429", "-t", "perf stat sleep 1"]) + # main_command_ast = makecommand.command("sleep", ["1"]) + # full_command = makecommand.command("perf stat", [inline(main_command_ast)]) + # remote_command = execute_on_remote(full_command, "user@host", port=57429) + # shell_out_new(remote_command) if __name__ == "__main__": From f3cdc9bc517661c518b8a046324364e8e9f9e0fe Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Mon, 26 May 2025 17:08:19 +0200 Subject: [PATCH 09/71] adds async version and removes useless print statements --- benchkit/shell/CommunicationLayer/hook.py | 30 +++++++++++ benchkit/shell/ast_shell_out.py | 65 ++++++++++++----------- benchkit/shell/commandAST/visitor.py | 1 - tests/ast-shell/ast_shell.py | 7 ++- tests/ast-shell/runForever.sh | 1 + tests/ast-shell/waitThenPrint.sh | 1 + 6 files changed, 72 insertions(+), 33 deletions(-) create mode 100755 tests/ast-shell/runForever.sh create mode 100755 tests/ast-shell/waitThenPrint.sh diff --git a/benchkit/shell/CommunicationLayer/hook.py b/benchkit/shell/CommunicationLayer/hook.py index 092e4ea3..dbc29d31 100644 --- a/benchkit/shell/CommunicationLayer/hook.py +++ b/benchkit/shell/CommunicationLayer/hook.py @@ -39,6 +39,36 @@ def get_result(self) -> bytes: return output +class VoidOutput: + def __init__(self,out:Output) -> None: + self.out=out + void_process_out = Process( + target=self.void_out, + args=( + self.out, + ), + ) + void_process_err = Process( + target=self.void_err, + args=( + self.out, + ), + ) + void_process_out.start() + void_process_err.start() + + @staticmethod + def void_out(out:Output) -> None: + outline = out.readOut(10) + while outline: + outline = out.readOut(10) + + @staticmethod + def void_err(out:Output) -> None: + outline = out.readOut(10) + while outline: + outline = out.readOut(10) + class Hook(ABC): @abstractmethod def startHookFunction(self,comandOutput:Output) -> None: diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index b3c6665e..a83f1753 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -10,7 +10,7 @@ from typing import Dict, Iterable, List, Optional from benchkit.shell.CommunicationLayer.comunication_handle import Output, SshOutput, WritableOutput -from benchkit.shell.CommunicationLayer.hook import OutputBuffer, ReaderHook +from benchkit.shell.CommunicationLayer.hook import OutputBuffer, ReaderHook, VoidOutput from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.commandNodes import CommandNode from benchkit.shell.commandAST.visitor import getString @@ -32,6 +32,7 @@ def shell_out_new( timeout: Optional[int] = None, output_is_log: bool = False, ignore_ret_codes: Iterable[int] = (), + run_in_background = False, # split_arguments: bool = True, Support REMOVED -> can be achieved in another manner ) -> str: """ @@ -140,20 +141,17 @@ def logger_hook_out(input:Output): while a: print(f"\33[34m[OUT | {stringCommand}] {try_conventing_bystring_to_readable_characters(a)}\033[0m") a = input.readOut_line() - print(f"{a!r}") - print("rhook stdout done") def logger_hook_err(input:Output): a = input.readErr_line() while a: print(f"\033[91m[ERR | {stringCommand}] {try_conventing_bystring_to_readable_characters(a)}\033[0m") a = input.readErr_line() - print("rhook stderr done") log_std_out_hook = ReaderHook(logger_hook_out) log_std_err_hook = ReaderHook(logger_hook_err) - with subprocess.Popen( + shell_process = subprocess.Popen( stringCommand, shell=True, cwd=current_dir, @@ -161,38 +159,43 @@ def logger_hook_err(input:Output): stdout=subprocess.PIPE, stderr=stderr_out, stdin=subprocess.PIPE, - ) as shell_process: - if shell_process.stdin is not None and std_input is not None: - shell_process.stdin.write(std_input.encode('utf-8')) - shell_process.stdin.flush() - - command_output = SshOutput(shell_process.stdout,shell_process.stderr) - - if output_is_log: - log_std_out_hook.startHookFunction(command_output) - pas = log_std_out_hook.getPassthrough() - log_std_err_hook.startHookFunction(pas) - command_output = log_std_err_hook.getPassthrough() - - try: - + ) + if shell_process.stdin is not None and std_input is not None: + shell_process.stdin.write(std_input.encode('utf-8')) + shell_process.stdin.flush() + + command_output = SshOutput(shell_process.stdout,shell_process.stderr) + + if output_is_log: + log_std_out_hook.startHookFunction(command_output) + pas = log_std_out_hook.getPassthrough() + log_std_err_hook.startHookFunction(pas) + command_output = log_std_err_hook.getPassthrough() + try: + if run_in_background: + VoidOutput(command_output) + # TODO: This makes it incompatible with timeout, this is fixable + # shell_process.wait(timeout=timeout) + print("should exit") + return "" + else: buffer = OutputBuffer(command_output) retcode = shell_process.wait(timeout=timeout) output = try_conventing_bystring_to_readable_characters(buffer.get_result()) - except subprocess.TimeoutExpired as err: - #killing this will send eof to and end the hooks aswell - shell_process.kill() - raise err + except subprocess.TimeoutExpired as err: + #killing this will send eof to and end the hooks aswell + shell_process.kill() + raise err - # not a sucsessfull execution and not an alowed exit code - # raise the appropriate error - if not sucsess(retcode) and retcode not in ignore_ret_codes: - raise subprocess.CalledProcessError( - retcode, - shell_process.args, - ) + # not a sucsessfull execution and not an alowed exit code + # raise the appropriate error + if not sucsess(retcode) and retcode not in ignore_ret_codes: + raise subprocess.CalledProcessError( + retcode, + shell_process.args, + ) if print_output and not output_is_log: if "" != output.strip(): diff --git a/benchkit/shell/commandAST/visitor.py b/benchkit/shell/commandAST/visitor.py index 0eb0e188..72e99de1 100755 --- a/benchkit/shell/commandAST/visitor.py +++ b/benchkit/shell/commandAST/visitor.py @@ -56,7 +56,6 @@ def visit_node(self, node: Node) -> Node: args = [x.argument for x in converted_ast.arguments] args.insert(0, converted_ast.command.argument) - print(args) return shlex.join(args) diff --git a/tests/ast-shell/ast_shell.py b/tests/ast-shell/ast_shell.py index 72ff5cdb..accdc2d7 100644 --- a/tests/ast-shell/ast_shell.py +++ b/tests/ast-shell/ast_shell.py @@ -103,8 +103,13 @@ def test(): # They exist to show that functions work in an intuative manner. a = shell_out_new( - "ls", print_output=True, output_is_log=True, redirect_stderr_to_stdout=False + "/home/aaron/benchkitFork/benchkit/tests/ast-shell/waitThenPrint.sh", print_output=True, output_is_log=True, redirect_stderr_to_stdout=False,run_in_background=True ) + print(f"test{a} -------------------------------------------------------------") + a = shell_out_new( + "ls", print_output=True, output_is_log=True, redirect_stderr_to_stdout=False, + ) + print("--------------------") print(a) diff --git a/tests/ast-shell/runForever.sh b/tests/ast-shell/runForever.sh new file mode 100755 index 00000000..f0da467c --- /dev/null +++ b/tests/ast-shell/runForever.sh @@ -0,0 +1 @@ +while true ; do date ; done \ No newline at end of file diff --git a/tests/ast-shell/waitThenPrint.sh b/tests/ast-shell/waitThenPrint.sh new file mode 100755 index 00000000..a7713767 --- /dev/null +++ b/tests/ast-shell/waitThenPrint.sh @@ -0,0 +1 @@ +sleep 1; echo done sleeping \ No newline at end of file From 5c8d90897deb5cd829394d9f763f48c7ec318e0d Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Mon, 26 May 2025 21:08:24 +0200 Subject: [PATCH 10/71] releases the file handels of the Popen process to avoid warnings in tests --- benchkit/shell/ast_shell_out.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index a83f1753..bb8a6846 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -148,8 +148,8 @@ def logger_hook_err(input:Output): print(f"\033[91m[ERR | {stringCommand}] {try_conventing_bystring_to_readable_characters(a)}\033[0m") a = input.readErr_line() - log_std_out_hook = ReaderHook(logger_hook_out) - log_std_err_hook = ReaderHook(logger_hook_err) + log_std_out_hook = ReaderHook(logger_hook_out,voidStdErr=True) + log_std_err_hook = ReaderHook(logger_hook_err,voidStdOut=True) shell_process = subprocess.Popen( stringCommand, @@ -163,6 +163,9 @@ def logger_hook_err(input:Output): if shell_process.stdin is not None and std_input is not None: shell_process.stdin.write(std_input.encode('utf-8')) shell_process.stdin.flush() + + if shell_process.stdin is not None: + shell_process.stdin.close() command_output = SshOutput(shell_process.stdout,shell_process.stderr) @@ -174,9 +177,8 @@ def logger_hook_err(input:Output): try: if run_in_background: VoidOutput(command_output) - # TODO: This makes it incompatible with timeout, this is fixable + # TODO: run_in_background makes it incompatible with timeout, this is fixable # shell_process.wait(timeout=timeout) - print("should exit") return "" else: buffer = OutputBuffer(command_output) @@ -188,6 +190,10 @@ def logger_hook_err(input:Output): shell_process.kill() raise err + if shell_process.stdout is not None: + shell_process.stdout.close() + if shell_process.stderr is not None: + shell_process.stderr.close() # not a sucsessfull execution and not an alowed exit code # raise the appropriate error From 59ccd6bf99091a9b5bdd0bdcdcb7bb8ece397d52 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Mon, 26 May 2025 21:11:50 +0200 Subject: [PATCH 11/71] start on the test framework --- tests/ast-shell/demofile2.txt | 14 ++++ tests/ast-shell/dependency-paths.txt | 2 + .../{ast_shell.py => other_tests.py} | 51 +------------ tests/ast-shell/runForever.sh | 1 - tests/ast-shell/shell_tests/ast_shell.py | 75 +++++++++++++++++++ tests/ast-shell/shell_tests/shell_scripts.py | 9 +++ .../shell_tests/shell_scripts/runForever.sh | 1 + .../shell_scripts}/waitThenPrint.sh | 0 8 files changed, 102 insertions(+), 51 deletions(-) create mode 100644 tests/ast-shell/demofile2.txt create mode 100644 tests/ast-shell/dependency-paths.txt rename tests/ast-shell/{ast_shell.py => other_tests.py} (66%) delete mode 100755 tests/ast-shell/runForever.sh create mode 100644 tests/ast-shell/shell_tests/ast_shell.py create mode 100644 tests/ast-shell/shell_tests/shell_scripts.py create mode 100755 tests/ast-shell/shell_tests/shell_scripts/runForever.sh rename tests/ast-shell/{ => shell_tests/shell_scripts}/waitThenPrint.sh (100%) diff --git a/tests/ast-shell/demofile2.txt b/tests/ast-shell/demofile2.txt new file mode 100644 index 00000000..74e726a3 --- /dev/null +++ b/tests/ast-shell/demofile2.txt @@ -0,0 +1,14 @@ +byeet +bwe do tihs? +yeet +b[OUT] +benchkit_echo_test +we do tihs? +yeet +bwe do tihs? +yeet +bwe do tihs? +yeet +bwe do tihs? +yeet +b \ No newline at end of file diff --git a/tests/ast-shell/dependency-paths.txt b/tests/ast-shell/dependency-paths.txt new file mode 100644 index 00000000..311a08f0 --- /dev/null +++ b/tests/ast-shell/dependency-paths.txt @@ -0,0 +1,2 @@ +../../benchkit +./shell_tests \ No newline at end of file diff --git a/tests/ast-shell/ast_shell.py b/tests/ast-shell/other_tests.py similarity index 66% rename from tests/ast-shell/ast_shell.py rename to tests/ast-shell/other_tests.py index accdc2d7..6d615d0b 100644 --- a/tests/ast-shell/ast_shell.py +++ b/tests/ast-shell/other_tests.py @@ -94,53 +94,4 @@ def runtest(): retcode = local_proc_1.poll() output = outs print(retcode) - print(str(output.decode("utf-8"))) - - -def test(): - - # THE TWO EXAMPLES BELOW DONT HALT - # They exist to show that functions work in an intuative manner. - - a = shell_out_new( - "/home/aaron/benchkitFork/benchkit/tests/ast-shell/waitThenPrint.sh", print_output=True, output_is_log=True, redirect_stderr_to_stdout=False,run_in_background=True - ) - print(f"test{a} -------------------------------------------------------------") - a = shell_out_new( - "ls", print_output=True, output_is_log=True, redirect_stderr_to_stdout=False, - ) - - print("--------------------") - print(a) - - # To show that output is log works - # a = shell_out_new( - # "cat /dev/random", print_output=True, output_is_log=True - # ) - # print("--------------------") - # print(a) - # To show that input works - # shell_out_new( - # "ssh user@host -p 22 'cat'", output_is_log=True, std_input="wafel\n" \ - # "aeu aeu\n" - # ) - - - # a = shell_out_new( - # "ssh user@host -p 22 'perf stat sleep 1'", print_output=True, output_is_log=True,redirect_stderr_to_stdout=False - # ) - # print("--------------------") - # print(a) - # shell_out_new(["ssh", "user@host", "-p", "57429", "-t", "perf stat sleep 1"]) - # main_command_ast = makecommand.command("sleep", ["1"]) - # full_command = makecommand.command("perf stat", [inline(main_command_ast)]) - # remote_command = execute_on_remote(full_command, "user@host", port=57429) - # shell_out_new(remote_command) - - -if __name__ == "__main__": - # commandtests() - # localtests() - # newtest() - # runtest() - test() + print(str(output.decode("utf-8"))) \ No newline at end of file diff --git a/tests/ast-shell/runForever.sh b/tests/ast-shell/runForever.sh deleted file mode 100755 index f0da467c..00000000 --- a/tests/ast-shell/runForever.sh +++ /dev/null @@ -1 +0,0 @@ -while true ; do date ; done \ No newline at end of file diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py new file mode 100644 index 00000000..d7852747 --- /dev/null +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -0,0 +1,75 @@ +import unittest +import unittest.mock +import io +from benchkit.shell.ast_shell_out import shell_out_new +from shell_scripts import script_path_string +import tracemalloc + +tracemalloc.start() + + + +class BasicShellTests(unittest.TestCase): + + @unittest.mock.patch('sys.stdout', new_callable=io.StringIO) + def test_echo(self,mock_stdout): + a = shell_out_new( + "echo benchkit_echo_test",output_is_log=True ,redirect_stderr_to_stdout=False, + ) + self.assertEqual(a,"benchkit_echo_test\n","shell does not provide the right output in the result") + f = open("demofile2.txt", "a") + print("yeet") + f.write(mock_stdout.getvalue()) + f.write("b") + f.close() + + + + +def test(): + + # THE TWO EXAMPLES BELOW DONT HALT + # They exist to show that functions work in an intuative manner. + + a = shell_out_new( + script_path_string("waitThenPrint"), print_output=True, output_is_log=True, redirect_stderr_to_stdout=False,run_in_background=True + ) + print(f"test{a} -------------------------------------------------------------") + a = shell_out_new( + "ls", print_output=True, output_is_log=True, redirect_stderr_to_stdout=False, + ) + + print("--------------------") + print(a) + + # To show that output is log works + # a = shell_out_new( + # "cat /dev/random", print_output=True, output_is_log=True + # ) + # print("--------------------") + # print(a) + # To show that input works + # shell_out_new( + # "ssh user@host -p 22 'cat'", output_is_log=True, std_input="wafel\n" \ + # "aeu aeu\n" + # ) + + + # a = shell_out_new( + # "ssh user@host -p 22 'perf stat sleep 1'", print_output=True, output_is_log=True,redirect_stderr_to_stdout=False + # ) + # print("--------------------") + # print(a) + # shell_out_new(["ssh", "user@host", "-p", "57429", "-t", "perf stat sleep 1"]) + # main_command_ast = makecommand.command("sleep", ["1"]) + # full_command = makecommand.command("perf stat", [inline(main_command_ast)]) + # remote_command = execute_on_remote(full_command, "user@host", port=57429) + # shell_out_new(remote_command) + + +if __name__ == "__main__": + # commandtests() + # localtests() + # newtest() + # runtest() + test() diff --git a/tests/ast-shell/shell_tests/shell_scripts.py b/tests/ast-shell/shell_tests/shell_scripts.py new file mode 100644 index 00000000..a1222a54 --- /dev/null +++ b/tests/ast-shell/shell_tests/shell_scripts.py @@ -0,0 +1,9 @@ +# Copyright (C) 2025 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + +import pathlib + +def script_path_string(script_name:str): + folder = pathlib.Path(__file__).parent.resolve() + print(folder) + return str(folder / f"./shell_scripts/{script_name}.sh") \ No newline at end of file diff --git a/tests/ast-shell/shell_tests/shell_scripts/runForever.sh b/tests/ast-shell/shell_tests/shell_scripts/runForever.sh new file mode 100755 index 00000000..4c1e5220 --- /dev/null +++ b/tests/ast-shell/shell_tests/shell_scripts/runForever.sh @@ -0,0 +1 @@ +while true ; do date -Ins; done \ No newline at end of file diff --git a/tests/ast-shell/waitThenPrint.sh b/tests/ast-shell/shell_tests/shell_scripts/waitThenPrint.sh similarity index 100% rename from tests/ast-shell/waitThenPrint.sh rename to tests/ast-shell/shell_tests/shell_scripts/waitThenPrint.sh From ee8ed4c1718629e6c865efe08a50b5f34c998181 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Tue, 27 May 2025 16:29:47 +0200 Subject: [PATCH 12/71] make the command use the correct pid --- benchkit/shell/ast_shell_out.py | 117 +++++++++++++++++++------------- 1 file changed, 69 insertions(+), 48 deletions(-) diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index bb8a6846..9e841e69 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -152,7 +152,12 @@ def logger_hook_err(input:Output): log_std_err_hook = ReaderHook(logger_hook_err,voidStdOut=True) shell_process = subprocess.Popen( - stringCommand, + # why exec: + # we want to be able to use shell=True + # however this would make the shell the pid of the subprocess + # by using exec we can get make the command take over the pid of the shell + # this only works for POSIX + f"exec {stringCommand}", shell=True, cwd=current_dir, env=environment, @@ -160,53 +165,69 @@ def logger_hook_err(input:Output): stderr=stderr_out, stdin=subprocess.PIPE, ) - if shell_process.stdin is not None and std_input is not None: - shell_process.stdin.write(std_input.encode('utf-8')) - shell_process.stdin.flush() - - if shell_process.stdin is not None: - shell_process.stdin.close() - - command_output = SshOutput(shell_process.stdout,shell_process.stderr) - - if output_is_log: - log_std_out_hook.startHookFunction(command_output) - pas = log_std_out_hook.getPassthrough() - log_std_err_hook.startHookFunction(pas) - command_output = log_std_err_hook.getPassthrough() + print(shell_process.pid) try: - if run_in_background: - VoidOutput(command_output) - # TODO: run_in_background makes it incompatible with timeout, this is fixable - # shell_process.wait(timeout=timeout) - return "" - else: - buffer = OutputBuffer(command_output) - retcode = shell_process.wait(timeout=timeout) - output = try_conventing_bystring_to_readable_characters(buffer.get_result()) - - except subprocess.TimeoutExpired as err: - #killing this will send eof to and end the hooks aswell - shell_process.kill() - raise err - - if shell_process.stdout is not None: - shell_process.stdout.close() - if shell_process.stderr is not None: - shell_process.stderr.close() - - # not a sucsessfull execution and not an alowed exit code - # raise the appropriate error - if not sucsess(retcode) and retcode not in ignore_ret_codes: - raise subprocess.CalledProcessError( - retcode, - shell_process.args, - ) + if shell_process.stdin is not None and std_input is not None: + shell_process.stdin.write(std_input.encode('utf-8')) + shell_process.stdin.flush() + + if shell_process.stdin is not None: + shell_process.stdin.close() - if print_output and not output_is_log: - if "" != output.strip(): - print("[OUT]") - print(output.strip()) + command_output = SshOutput(shell_process.stdout,shell_process.stderr) - # assert isinstance(output, str) - return output + if output_is_log: + log_std_out_hook.startHookFunction(command_output) + pas = log_std_out_hook.getPassthrough() + log_std_err_hook.startHookFunction(pas) + command_output = log_std_err_hook.getPassthrough() + try: + if run_in_background: + VoidOutput(command_output) + # TODO: run_in_background makes it incompatible with timeout, this is fixable + # shell_process.wait(timeout=timeout) + return "" + else: + buffer = OutputBuffer(command_output) + retcode = shell_process.wait(timeout=timeout) + output = try_conventing_bystring_to_readable_characters(buffer.get_result()) + + except subprocess.TimeoutExpired as err: + #killing this will send eof to and end the hooks aswell + shell_process.kill() + raise err + + if shell_process.stdout is not None: + shell_process.stdout.close() + if shell_process.stderr is not None: + shell_process.stderr.close() + + # not a sucsessfull execution and not an alowed exit code + # raise the appropriate error + if not sucsess(retcode) and retcode not in ignore_ret_codes: + raise subprocess.CalledProcessError( + retcode, + shell_process.args, + ) + + if print_output and not output_is_log: + if "" != output.strip(): + print("[OUT]") + print(output.strip()) + + # assert isinstance(output, str) + return output + except Exception as e: + # If something goes wrong we try to clean up after ourself + # This can happen for example if we recieve a signal while waiting on an output + try: + if shell_process.stderr is not None: + shell_process.stderr.close() + if shell_process.stdout is not None: + shell_process.stdout.close() + finally: + shell_process.terminate() + # Wait allows the Popen process to cleanly terminate + ret = shell_process.wait(1) + print(f"ret:{ret}") + raise e From 0fe606c80d8b4cffc6be287c57fdc76e4b6ee86e Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Tue, 27 May 2025 16:30:18 +0200 Subject: [PATCH 13/71] ads ability for ssh IO handles to be None Signed-off-by: Bogaert Aaron --- .../CommunicationLayer/comunication_handle.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/comunication_handle.py b/benchkit/shell/CommunicationLayer/comunication_handle.py index 6964d7b9..4510c795 100644 --- a/benchkit/shell/CommunicationLayer/comunication_handle.py +++ b/benchkit/shell/CommunicationLayer/comunication_handle.py @@ -19,7 +19,7 @@ def __init__(self): @abstractmethod def _read_bytes_out(self, amount_of_bytes: int) -> bytes: pass - + @abstractmethod def _read_bytes_err(self, amount_of_bytes: int) -> bytes: pass @@ -64,17 +64,20 @@ def readErr_line(self) -> bytes: return byt class SshOutput(Output): - def __init__(self,out:BufferedReader,err:BufferedReader): + def __init__(self,out:BufferedReader|None,err:BufferedReader|None): self.__out = out self.__err = err super().__init__() def _read_bytes_err(self, amount_of_bytes:int) -> bytes: - return self.__err.read(amount_of_bytes) + if self.__err: + return self.__err.read(amount_of_bytes) + return b'' def _read_bytes_out(self, amount_of_bytes:int) -> bytes: - return self.__out.read(amount_of_bytes) - + if self.__out: + return self.__out.read(amount_of_bytes) + return b'' class WritableOutput(Output): """A way to create a fileStream that can be used as a CommandOutput by other functions""" @@ -126,5 +129,4 @@ def _read_bytes_err(self, amount_of_bytes: int) -> bytes: -> if hooks dont clear it fast enough what will happen -> test this - """ From bab21edf479bfbfd99831b263b1efde38f14848c Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Tue, 27 May 2025 16:35:46 +0200 Subject: [PATCH 14/71] rework basic tests --- tests/ast-shell/shell_tests/ast_shell.py | 97 ++++++++----------- tests/ast-shell/shell_tests/shell_scripts.py | 24 +++++ .../shell_tests/shell_scripts/runForever.sh | 2 +- .../shell_tests/shell_scripts/writeBack.sh | 5 + 4 files changed, 69 insertions(+), 59 deletions(-) create mode 100755 tests/ast-shell/shell_tests/shell_scripts/writeBack.sh diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py index d7852747..17a35861 100644 --- a/tests/ast-shell/shell_tests/ast_shell.py +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -1,75 +1,56 @@ +from itertools import product +import pathlib +import sys import unittest import unittest.mock import io + from benchkit.shell.ast_shell_out import shell_out_new -from shell_scripts import script_path_string +from shell_scripts import script_path_string, timeout + +import re + +import unittest.mock + import tracemalloc tracemalloc.start() +# Due to print statements being inside of threads unittest does not allow us to check the output of stdout. +# We will have to write tests in a different way to check what the user sees. +# To this end these tests only test functionality + class BasicShellTests(unittest.TestCase): - - @unittest.mock.patch('sys.stdout', new_callable=io.StringIO) - def test_echo(self,mock_stdout): + def test_echo(self): + + options = ["redirect_stderr_to_stdout","current_dir","environment","print_output","timeout","output_is_log","ignore_ret_codes"] + redirect_stderr_to_stdout = [True,False] + current_dir = [None, pathlib.Path(__file__).parent.resolve()] + environment = [None,{"test":"test"}] + print_output = [False,True] + timeout = [None,20] + output_is_log = [False,True] + ignore_ret_codes = [(),(1,)] + res = list(product(redirect_stderr_to_stdout,current_dir,environment,print_output,timeout,output_is_log,ignore_ret_codes)) + for perm in res: + args = dict(zip(options, perm)) + # test echo with multiple parameters to make sure none mess up the result a = shell_out_new( - "echo benchkit_echo_test",output_is_log=True ,redirect_stderr_to_stdout=False, + f"echo benchkit_echo_test {str(perm)}", + print_command=True, + **args ) - self.assertEqual(a,"benchkit_echo_test\n","shell does not provide the right output in the result") - f = open("demofile2.txt", "a") - print("yeet") - f.write(mock_stdout.getvalue()) - f.write("b") - f.close() - - - - -def test(): - - # THE TWO EXAMPLES BELOW DONT HALT - # They exist to show that functions work in an intuative manner. - - a = shell_out_new( - script_path_string("waitThenPrint"), print_output=True, output_is_log=True, redirect_stderr_to_stdout=False,run_in_background=True - ) - print(f"test{a} -------------------------------------------------------------") - a = shell_out_new( - "ls", print_output=True, output_is_log=True, redirect_stderr_to_stdout=False, - ) - - print("--------------------") - print(a) - - # To show that output is log works - # a = shell_out_new( - # "cat /dev/random", print_output=True, output_is_log=True - # ) - # print("--------------------") - # print(a) - # To show that input works - # shell_out_new( - # "ssh user@host -p 22 'cat'", output_is_log=True, std_input="wafel\n" \ - # "aeu aeu\n" - # ) + expeced_result = re.sub(r'\'', '', f"benchkit_echo_test {str(perm)}") + self.assertEqual(a,f"{expeced_result}\n","shell does not provide the right output in the result") + def test_run_forever(self): + with self.assertRaises(Exception): + with timeout(5): + shell_out_new(f"{script_path_string("runForever")}",output_is_log=True,redirect_stderr_to_stdout=False) - # a = shell_out_new( - # "ssh user@host -p 22 'perf stat sleep 1'", print_output=True, output_is_log=True,redirect_stderr_to_stdout=False - # ) - # print("--------------------") - # print(a) - # shell_out_new(["ssh", "user@host", "-p", "57429", "-t", "perf stat sleep 1"]) - # main_command_ast = makecommand.command("sleep", ["1"]) - # full_command = makecommand.command("perf stat", [inline(main_command_ast)]) - # remote_command = execute_on_remote(full_command, "user@host", port=57429) - # shell_out_new(remote_command) -if __name__ == "__main__": - # commandtests() - # localtests() - # newtest() - # runtest() - test() +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/tests/ast-shell/shell_tests/shell_scripts.py b/tests/ast-shell/shell_tests/shell_scripts.py index a1222a54..6eeecf21 100644 --- a/tests/ast-shell/shell_tests/shell_scripts.py +++ b/tests/ast-shell/shell_tests/shell_scripts.py @@ -3,6 +3,30 @@ import pathlib +import signal + +class TestTimeout(Exception): + pass + +class timeout: + def __init__(self, seconds, error_message=None): + if error_message is None: + error_message = 'test timed out after {}s.'.format(seconds) + self.seconds = seconds + self.error_message = error_message + + def handle_timeout(self, signum, frame): + raise TestTimeout(self.error_message) + + def __enter__(self): + signal.signal(signal.SIGALRM, self.handle_timeout) + signal.alarm(self.seconds) + + def __exit__(self, exc_type, exc_val, exc_tb): + signal.alarm(0) + + + def script_path_string(script_name:str): folder = pathlib.Path(__file__).parent.resolve() print(folder) diff --git a/tests/ast-shell/shell_tests/shell_scripts/runForever.sh b/tests/ast-shell/shell_tests/shell_scripts/runForever.sh index 4c1e5220..34db0e03 100755 --- a/tests/ast-shell/shell_tests/shell_scripts/runForever.sh +++ b/tests/ast-shell/shell_tests/shell_scripts/runForever.sh @@ -1 +1 @@ -while true ; do date -Ins; done \ No newline at end of file +while true ; do date -Ins;sleep 1; done \ No newline at end of file diff --git a/tests/ast-shell/shell_tests/shell_scripts/writeBack.sh b/tests/ast-shell/shell_tests/shell_scripts/writeBack.sh new file mode 100755 index 00000000..e4858341 --- /dev/null +++ b/tests/ast-shell/shell_tests/shell_scripts/writeBack.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +read -s -p "" input + +echo "$input" \ No newline at end of file From 92e256ceae3a0c896c6497c5fcfe375231dcba91 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Wed, 28 May 2025 15:22:44 +0200 Subject: [PATCH 15/71] expand the test casses and do small cleanup tasks --- tests/ast-shell/demofile2.txt | 14 -- tests/ast-shell/shell_tests/ast_shell.py | 175 ++++++++++++++---- .../{ => shell_tests}/other_tests.py | 26 ++- tests/ast-shell/shell_tests/readme.md | 6 + .../shell_scripts/fillErrThenOut.sh | 10 + .../shell_scripts/fillOutThenErr.sh | 10 + 6 files changed, 191 insertions(+), 50 deletions(-) delete mode 100644 tests/ast-shell/demofile2.txt rename tests/ast-shell/{ => shell_tests}/other_tests.py (78%) create mode 100644 tests/ast-shell/shell_tests/readme.md create mode 100755 tests/ast-shell/shell_tests/shell_scripts/fillErrThenOut.sh create mode 100755 tests/ast-shell/shell_tests/shell_scripts/fillOutThenErr.sh diff --git a/tests/ast-shell/demofile2.txt b/tests/ast-shell/demofile2.txt deleted file mode 100644 index 74e726a3..00000000 --- a/tests/ast-shell/demofile2.txt +++ /dev/null @@ -1,14 +0,0 @@ -byeet -bwe do tihs? -yeet -b[OUT] -benchkit_echo_test -we do tihs? -yeet -bwe do tihs? -yeet -bwe do tihs? -yeet -bwe do tihs? -yeet -b \ No newline at end of file diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py index 17a35861..4c9c231b 100644 --- a/tests/ast-shell/shell_tests/ast_shell.py +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -1,56 +1,161 @@ -from itertools import product +import itertools import pathlib -import sys +import subprocess +from typing import Any import unittest -import unittest.mock -import io - +import re +from shell_scripts import TestTimeout, script_path_string, timeout from benchkit.shell.ast_shell_out import shell_out_new -from shell_scripts import script_path_string, timeout -import re -import unittest.mock +# Due to print statements being inside of threads unittest does +# not allow us to check the output of stdout. +# We will have to write tests in a different way to check what the user sees. +# To this end these tests only test functionality -import tracemalloc +def get_arguments_dict_list(overwrite_arguments_dict:dict[str,Any]|None=None,include_cosmetic:bool=True): + if overwrite_arguments_dict is None: + overwrite_arguments_dict = {} -tracemalloc.start() + arguments_dict = {} + if include_cosmetic: + arguments_dict = { + "print_output": [True,False], + "output_is_log": [True,False], + } + for argument_key in overwrite_arguments_dict: + arguments_dict[argument_key] = overwrite_arguments_dict[argument_key] + + keys = [] + arguments = [] + + for key, arugments in arguments_dict.items(): + keys.append(key) + arguments += [arugments] + argument_permutations = itertools.product(*arguments) + result_list = [] + for argument_permutation in list(argument_permutations): + result_list.append(dict(zip(keys,argument_permutation))) + return result_list -# Due to print statements being inside of threads unittest does not allow us to check the output of stdout. -# We will have to write tests in a different way to check what the user sees. -# To this end these tests only test functionality class BasicShellTests(unittest.TestCase): + + # @unittest.skip("disabled for debugging") def test_echo(self): + """Basic tests to see if the command-line can execute a given command + and return the correct output given a range of arguments""" + argument_list = get_arguments_dict_list({ + "redirect_stderr_to_stdout": [True,False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None,{"test":"test"}], + "timeout": [None,20], + "ignore_ret_codes": [(),(1,)], + }) + for args in argument_list: + with timeout(1): + # test echo with multiple parameters to make sure none mess up the result + a = shell_out_new( + f"echo benchkit_echo_test {str(args)}", + print_command=True, + **args + ) + expeced_result = re.sub(r'\'', '', f"benchkit_echo_test {str(args)}") + self.assertEqual(a,f"{expeced_result}\n","shell does not provide the right output in the result") - options = ["redirect_stderr_to_stdout","current_dir","environment","print_output","timeout","output_is_log","ignore_ret_codes"] - redirect_stderr_to_stdout = [True,False] - current_dir = [None, pathlib.Path(__file__).parent.resolve()] - environment = [None,{"test":"test"}] - print_output = [False,True] - timeout = [None,20] - output_is_log = [False,True] - ignore_ret_codes = [(),(1,)] - res = list(product(redirect_stderr_to_stdout,current_dir,environment,print_output,timeout,output_is_log,ignore_ret_codes)) - for perm in res: - args = dict(zip(options, perm)) - # test echo with multiple parameters to make sure none mess up the result - a = shell_out_new( - f"echo benchkit_echo_test {str(perm)}", - print_command=True, - **args - ) - expeced_result = re.sub(r'\'', '', f"benchkit_echo_test {str(perm)}") - self.assertEqual(a,f"{expeced_result}\n","shell does not provide the right output in the result") + # @unittest.skip("disabled for debugging") def test_run_forever(self): - with self.assertRaises(Exception): + """Test to make sure that commands do not exit prematurely""" + argument_list = get_arguments_dict_list({ + "redirect_stderr_to_stdout": [True,False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None,{"test":"test"}], + "timeout": [None,20], + "ignore_ret_codes": [(),(1,)], + }) + for args in argument_list: + with self.assertRaises(TestTimeout): + with timeout(5): + shell_out_new(script_path_string("runForever"),**args) + + # @unittest.skip("disabled for debugging") + def test_timeout(self): + """testing the timeout argument""" + argument_list = get_arguments_dict_list({ + "redirect_stderr_to_stdout": [True,False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None,{"test":"test"}], + "ignore_ret_codes": [(),(1,)], + "timeout": [1,2], # tested argument + }) + # making sure that a program times out due to the argument + for args in argument_list: with timeout(5): - shell_out_new(f"{script_path_string("runForever")}",output_is_log=True,redirect_stderr_to_stdout=False) + with self.assertRaises(subprocess.TimeoutExpired): + shell_out_new(script_path_string("runForever"),**args) + + argument_list = get_arguments_dict_list({ + "redirect_stderr_to_stdout": [True,False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None,{"test":"test"}], + "ignore_ret_codes": [(),(1,)], + "timeout": [6], # tested argument + }) + + # making sure that it does not time out before the given timeout + for args in argument_list: + with self.assertRaises(TestTimeout): + with timeout(5): + shell_out_new(script_path_string("runForever"),**args) + + # @unittest.skip("disabled for debugging") + def test_input(self): + """testing the use of the std_input parameter""" + argument_list = get_arguments_dict_list({ + "redirect_stderr_to_stdout": [True,False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None,{"test":"test"}], + "ignore_ret_codes": [(),(1,)], + }) + + for args in argument_list: + with timeout(10): + out = shell_out_new(script_path_string('writeBack'),std_input=f"benchkit input test {str(args)}\n",**args) + self.assertEqual(out,f"benchkit input test {str(args)}\n",f"recieved{out}") + + # @unittest.skip("disabled for debugging") + def test_command_blocks_io_overfull(self): + ''' Overfull internal IO buffers would halt the execution of the command + Here we test whether or not this happens in our implementation + ''' + argument_list = get_arguments_dict_list({ + "redirect_stderr_to_stdout": [True,False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None,{"test":"test"}], + "timeout": [None,20], + "ignore_ret_codes": [(),(1,)], + }) + + for args in argument_list: + try: + with timeout(10): + # tests for filling the std_err + shell_out_new(script_path_string('fillErrThenOut'), **args) + except TestTimeout: + self.fail("the command got halted during excecution") + raise TestTimeout + try: + with timeout(10): + # tests for filling the std_io + shell_out_new(script_path_string('fillOutThenErr'), **args) + except TestTimeout: + self.fail("the command got halted during excecution") + raise TestTimeout if __name__ == '__main__': - unittest.main() \ No newline at end of file + unittest.main() diff --git a/tests/ast-shell/other_tests.py b/tests/ast-shell/shell_tests/other_tests.py similarity index 78% rename from tests/ast-shell/other_tests.py rename to tests/ast-shell/shell_tests/other_tests.py index 6d615d0b..fad89f60 100644 --- a/tests/ast-shell/other_tests.py +++ b/tests/ast-shell/shell_tests/other_tests.py @@ -3,6 +3,7 @@ import shlex import subprocess +import sys from benchkit.shell.ast_shell_out import shell_out_new from benchkit.shell.commandAST import command as makecommand @@ -15,6 +16,9 @@ resolveAllVariablesWithDict, ) +from shell_scripts import TestTimeout, script_path_string, timeout +from benchkit.shell.ast_shell_out import shell_out_new + def commandtests(): @@ -94,4 +98,24 @@ def runtest(): retcode = local_proc_1.poll() output = outs print(retcode) - print(str(output.decode("utf-8"))) \ No newline at end of file + print(str(output.decode("utf-8"))) + +def testhalt(): + # shell_process = subprocess.Popen( + # # why exec: + # # we want to be able to use shell=True + # # however this would make the shell the pid of the subprocess + # # by using exec we can get make the command take over the pid of the shell + # # this only works for POSIX + # f"./shell_scripts/fillErrThenPrint.sh", + # # shell=True, + # stdout=sys.stdout, + # stderr=sys.stderr, + # stdin=subprocess.PIPE, + # ) + # shell_process.wait() + out = shell_out_new(script_path_string('fillErrThenOut'),redirect_stderr_to_stdout=True,output_is_log=True) + print("yeet") + +if __name__ == "__main__": + testhalt() \ No newline at end of file diff --git a/tests/ast-shell/shell_tests/readme.md b/tests/ast-shell/shell_tests/readme.md new file mode 100644 index 00000000..b420d6c0 --- /dev/null +++ b/tests/ast-shell/shell_tests/readme.md @@ -0,0 +1,6 @@ +# This folder contains the files for testing the ast-shell implementation of benchkit + +Run `python -m unittest ast_shell.py -v` in this folder to run the current tests. +This takes about 1700 seconds for the current folder. + +other_tests.py is a file containing some personal testing code and will be converted to proper test cases at a later date \ No newline at end of file diff --git a/tests/ast-shell/shell_tests/shell_scripts/fillErrThenOut.sh b/tests/ast-shell/shell_tests/shell_scripts/fillErrThenOut.sh new file mode 100755 index 00000000..69646dc3 --- /dev/null +++ b/tests/ast-shell/shell_tests/shell_scripts/fillErrThenOut.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +x=1 + +while [ $x -le 3000 ]; +do + echo "std_out spam - $x - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." 1>&2; + (( x++ )) +done +echo "finished" \ No newline at end of file diff --git a/tests/ast-shell/shell_tests/shell_scripts/fillOutThenErr.sh b/tests/ast-shell/shell_tests/shell_scripts/fillOutThenErr.sh new file mode 100755 index 00000000..a995bb88 --- /dev/null +++ b/tests/ast-shell/shell_tests/shell_scripts/fillOutThenErr.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +x=1 + +while [ $x -le 3000 ]; +do + echo "std_out spam - $x - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."; + (( x++ )) +done +echo "finished" 1>&2 \ No newline at end of file From 1f37cd474a322692715ddbffef4df48252428e0c Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Wed, 28 May 2025 15:24:33 +0200 Subject: [PATCH 16/71] apply fixes to bugs --- benchkit/shell/CommunicationLayer/hook.py | 36 ++++++++++++++++------- benchkit/shell/ast_shell_out.py | 4 +-- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/hook.py b/benchkit/shell/CommunicationLayer/hook.py index dbc29d31..b4e3d847 100644 --- a/benchkit/shell/CommunicationLayer/hook.py +++ b/benchkit/shell/CommunicationLayer/hook.py @@ -6,24 +6,33 @@ -# change -> this should be a "result hook" +# change -> this should be a "result hook" # -> Hook should be a pastrough hook # -> Hook should have getPassthrough() removed # This would allow for composition where every hook needs to end in a result hook (deafault is voiding it -> would be async) class OutputBuffer: def __init__(self,out:Output) -> None: - self.queue:Queue[bytes]=Queue() + self.queue_out:Queue[bytes]=Queue() self.out=out - logger_process = Process( + logger_process_out = Process( target=self.result_thread, args=( self.out, - self.queue, + self.queue_out, ), ) - logger_process.start() + + err_void = Process( + target=self.void_err, + args=( + self.out, + ), + ) + + logger_process_out.start() + err_void.start() @staticmethod def result_thread(out:Output,output_queue:Queue[bytes]) -> None: @@ -33,12 +42,19 @@ def result_thread(out:Output,output_queue:Queue[bytes]) -> None: outlines += outline outline = out.readOut(10) output_queue.put(outlines) + print("res ends") + + @staticmethod + def void_err(out:Output) -> None: + outline = out.readErr(10) + while outline: + outline = out.readErr(10) + print("err ends") def get_result(self) -> bytes: - output = self.queue.get() + output = self.queue_out.get() return output - class VoidOutput: def __init__(self,out:Output) -> None: self.out=out @@ -62,12 +78,12 @@ def void_out(out:Output) -> None: outline = out.readOut(10) while outline: outline = out.readOut(10) - + @staticmethod def void_err(out:Output) -> None: - outline = out.readOut(10) + outline = out.readErr(10) while outline: - outline = out.readOut(10) + outline = out.readErr(10) class Hook(ABC): @abstractmethod diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 9e841e69..090d3de2 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -5,11 +5,9 @@ import pathlib import shlex import subprocess -from multiprocessing import Process, Queue -from time import sleep from typing import Dict, Iterable, List, Optional -from benchkit.shell.CommunicationLayer.comunication_handle import Output, SshOutput, WritableOutput +from benchkit.shell.CommunicationLayer.comunication_handle import Output, SshOutput from benchkit.shell.CommunicationLayer.hook import OutputBuffer, ReaderHook, VoidOutput from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.commandNodes import CommandNode From e24c296681347c330009bb8ee9ac99b77736b4aa Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Wed, 28 May 2025 16:07:14 +0200 Subject: [PATCH 17/71] iprove documentation of the tests --- tests/ast-shell/configure.sh | 4 ++++ tests/ast-shell/readme.md | 13 +++++++++++++ tests/ast-shell/shell_tests/readme.md | 6 ------ 3 files changed, 17 insertions(+), 6 deletions(-) create mode 100755 tests/ast-shell/configure.sh create mode 100644 tests/ast-shell/readme.md delete mode 100644 tests/ast-shell/shell_tests/readme.md diff --git a/tests/ast-shell/configure.sh b/tests/ast-shell/configure.sh new file mode 100755 index 00000000..63b6c293 --- /dev/null +++ b/tests/ast-shell/configure.sh @@ -0,0 +1,4 @@ +#!/bin/sh +set -e + +../../scripts/install_venv.sh diff --git a/tests/ast-shell/readme.md b/tests/ast-shell/readme.md new file mode 100644 index 00000000..a2e51251 --- /dev/null +++ b/tests/ast-shell/readme.md @@ -0,0 +1,13 @@ +# This folder contains the files for testing the ast-shell implementation of benchkit + +## Configure venv + +There is a `configure.sh` script. If run from this directory it wil create a working venv that can be started using `. ./venv/bin/activate` + +## Running the tests + +Run `python -m unittest ast_shell -v` in this folder to run the current tests. +This takes about 1400 seconds for the current folder. +It will spam the terminal to make it not do this add `-b` to the command. + +other_tests.py is a file containing some personal testing code and will be converted to proper test cases at a later date \ No newline at end of file diff --git a/tests/ast-shell/shell_tests/readme.md b/tests/ast-shell/shell_tests/readme.md deleted file mode 100644 index b420d6c0..00000000 --- a/tests/ast-shell/shell_tests/readme.md +++ /dev/null @@ -1,6 +0,0 @@ -# This folder contains the files for testing the ast-shell implementation of benchkit - -Run `python -m unittest ast_shell.py -v` in this folder to run the current tests. -This takes about 1700 seconds for the current folder. - -other_tests.py is a file containing some personal testing code and will be converted to proper test cases at a later date \ No newline at end of file From f15088302a60170d2c0c13ec7af59d1b17d98bc9 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Thu, 29 May 2025 22:15:11 +0200 Subject: [PATCH 18/71] increased timeout time for tests due to them being to slow for wsl Signed-off-by: Bogaert Aaron --- tests/ast-shell/shell_tests/ast_shell.py | 7 +++---- tests/ast-shell/shell_tests/other_tests.py | 5 +++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py index 4c9c231b..772c1efa 100644 --- a/tests/ast-shell/shell_tests/ast_shell.py +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -141,21 +141,20 @@ def test_command_blocks_io_overfull(self): for args in argument_list: try: - with timeout(10): + with timeout(20): # tests for filling the std_err shell_out_new(script_path_string('fillErrThenOut'), **args) except TestTimeout: - self.fail("the command got halted during excecution") + self.fail(f"the command got halted during excecution for {script_path_string('fillErrThenOut')} with args: {args}") raise TestTimeout try: - with timeout(10): + with timeout(20): # tests for filling the std_io shell_out_new(script_path_string('fillOutThenErr'), **args) except TestTimeout: self.fail("the command got halted during excecution") raise TestTimeout - if __name__ == '__main__': unittest.main() diff --git a/tests/ast-shell/shell_tests/other_tests.py b/tests/ast-shell/shell_tests/other_tests.py index fad89f60..addef023 100644 --- a/tests/ast-shell/shell_tests/other_tests.py +++ b/tests/ast-shell/shell_tests/other_tests.py @@ -16,7 +16,7 @@ resolveAllVariablesWithDict, ) -from shell_scripts import TestTimeout, script_path_string, timeout +from shell_scripts import script_path_string from benchkit.shell.ast_shell_out import shell_out_new @@ -114,7 +114,8 @@ def testhalt(): # stdin=subprocess.PIPE, # ) # shell_process.wait() - out = shell_out_new(script_path_string('fillErrThenOut'),redirect_stderr_to_stdout=True,output_is_log=True) + args = {'print_output': True, 'output_is_log': True, 'redirect_stderr_to_stdout': False, 'current_dir': None, 'environment': None, 'timeout': None, 'ignore_ret_codes': ()} + out = shell_out_new(script_path_string('fillErrThenOut'),**args) print("yeet") if __name__ == "__main__": From 25c5aec94243e7bf48eaa2cf40ca68bf094e48ae Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Fri, 30 May 2025 00:30:38 +0200 Subject: [PATCH 19/71] fixes isort flow Signed-off-by: Bogaert Aaron --- benchkit/shell/CommunicationLayer/comunication_handle.py | 2 +- benchkit/shell/CommunicationLayer/hook.py | 6 +++--- benchkit/shell/ast_shell_out.py | 4 ++-- benchkit/shell/commandAST/visitor.py | 8 +++++--- tests/ast-shell/shell_tests/ast_shell.py | 7 ++++--- tests/ast-shell/shell_tests/other_tests.py | 5 ++--- tests/ast-shell/shell_tests/shell_scripts.py | 2 +- 7 files changed, 18 insertions(+), 16 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/comunication_handle.py b/benchkit/shell/CommunicationLayer/comunication_handle.py index 4510c795..c1d87ba9 100644 --- a/benchkit/shell/CommunicationLayer/comunication_handle.py +++ b/benchkit/shell/CommunicationLayer/comunication_handle.py @@ -1,9 +1,9 @@ # Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. # SPDX-License-Identifier: MIT -from io import BufferedReader import os from abc import ABC, abstractmethod +from io import BufferedReader class Output(ABC): diff --git a/benchkit/shell/CommunicationLayer/hook.py b/benchkit/shell/CommunicationLayer/hook.py index b4e3d847..f51c58cd 100644 --- a/benchkit/shell/CommunicationLayer/hook.py +++ b/benchkit/shell/CommunicationLayer/hook.py @@ -1,10 +1,10 @@ -from __future__ import annotations #Otherwise Queue comlains about typing +from __future__ import annotations # Otherwise Queue comlains about typing + from abc import ABC, abstractmethod from multiprocessing import Process, Queue from typing import Callable -from benchkit.shell.CommunicationLayer.comunication_handle import Output, WritableOutput - +from benchkit.shell.CommunicationLayer.comunication_handle import Output, WritableOutput # change -> this should be a "result hook" # -> Hook should be a pastrough hook diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 090d3de2..8d10c86d 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -7,11 +7,11 @@ import subprocess from typing import Dict, Iterable, List, Optional -from benchkit.shell.CommunicationLayer.comunication_handle import Output, SshOutput -from benchkit.shell.CommunicationLayer.hook import OutputBuffer, ReaderHook, VoidOutput from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.commandNodes import CommandNode from benchkit.shell.commandAST.visitor import getString +from benchkit.shell.CommunicationLayer.comunication_handle import Output, SshOutput +from benchkit.shell.CommunicationLayer.hook import OutputBuffer, ReaderHook, VoidOutput def shell_out_new( diff --git a/benchkit/shell/commandAST/visitor.py b/benchkit/shell/commandAST/visitor.py index 72e99de1..94c4e135 100755 --- a/benchkit/shell/commandAST/visitor.py +++ b/benchkit/shell/commandAST/visitor.py @@ -6,10 +6,12 @@ from benchkit.shell.commandAST.abstractTypes import Node from benchkit.shell.commandAST.command import command -from benchkit.shell.commandAST.nodes.commandNodes import CommandNode, InlineCommandNode, StringNode -from benchkit.shell.commandAST.nodes.variable_node import ( - Visitor, +from benchkit.shell.commandAST.nodes.commandNodes import ( + CommandNode, + InlineCommandNode, + StringNode, ) +from benchkit.shell.commandAST.nodes.variable_node import Visitor from benchkit.shell.commandAST.Visitors.print_visitor import printASTVisitor from benchkit.shell.commandAST.Visitors.variable_visitors import ( VariableFinder, diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py index 772c1efa..73102ddd 100644 --- a/tests/ast-shell/shell_tests/ast_shell.py +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -1,12 +1,13 @@ import itertools import pathlib +import re import subprocess -from typing import Any import unittest -import re +from typing import Any + from shell_scripts import TestTimeout, script_path_string, timeout -from benchkit.shell.ast_shell_out import shell_out_new +from benchkit.shell.ast_shell_out import shell_out_new # Due to print statements being inside of threads unittest does # not allow us to check the output of stdout. diff --git a/tests/ast-shell/shell_tests/other_tests.py b/tests/ast-shell/shell_tests/other_tests.py index addef023..54bf56ff 100644 --- a/tests/ast-shell/shell_tests/other_tests.py +++ b/tests/ast-shell/shell_tests/other_tests.py @@ -5,6 +5,8 @@ import subprocess import sys +from shell_scripts import script_path_string + from benchkit.shell.ast_shell_out import shell_out_new from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.variable_node import RuntimeVariable @@ -16,9 +18,6 @@ resolveAllVariablesWithDict, ) -from shell_scripts import script_path_string -from benchkit.shell.ast_shell_out import shell_out_new - def commandtests(): diff --git a/tests/ast-shell/shell_tests/shell_scripts.py b/tests/ast-shell/shell_tests/shell_scripts.py index 6eeecf21..40f53e00 100644 --- a/tests/ast-shell/shell_tests/shell_scripts.py +++ b/tests/ast-shell/shell_tests/shell_scripts.py @@ -2,9 +2,9 @@ # SPDX-License-Identifier: MIT import pathlib - import signal + class TestTimeout(Exception): pass From 5bd2fc437f865262f9ae06db8bca995a96b9b62d Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Fri, 30 May 2025 00:42:04 +0200 Subject: [PATCH 20/71] redone formating to pass CI --- .../CommunicationLayer/comunication_handle.py | 33 ++-- benchkit/shell/CommunicationLayer/hook.py | 121 ++++++-------- benchkit/shell/ast_shell_out.py | 29 ++-- tests/ast-shell/readme.md | 8 +- tests/ast-shell/shell_tests/ast_shell.py | 155 ++++++++++-------- tests/ast-shell/shell_tests/other_tests.py | 16 +- tests/ast-shell/shell_tests/shell_scripts.py | 30 ++-- 7 files changed, 212 insertions(+), 180 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/comunication_handle.py b/benchkit/shell/CommunicationLayer/comunication_handle.py index c1d87ba9..1fdd3f57 100644 --- a/benchkit/shell/CommunicationLayer/comunication_handle.py +++ b/benchkit/shell/CommunicationLayer/comunication_handle.py @@ -11,11 +11,10 @@ class Output(ABC): functions are due to compatibility""" def __init__(self): - self.__bufferd_out:bytes = b'' - self.__bufferd_err:bytes = b'' + self.__bufferd_out: bytes = b"" + self.__bufferd_err: bytes = b"" self.a = 2 - @abstractmethod def _read_bytes_out(self, amount_of_bytes: int) -> bytes: pass @@ -28,7 +27,7 @@ def readOut(self, amount_of_bytes: int) -> bytes: """reads at most amount_of_bytes from the available stdout""" if self.__bufferd_out: ret = self.__bufferd_out - self.__bufferd_out = b'' + self.__bufferd_out = b"" self.a = 0 return ret self.a += 1 @@ -39,14 +38,14 @@ def readErr(self, amount_of_bytes: int) -> bytes: """reads at most amount_of_bytes from the available stderr""" if self.__bufferd_err: ret = self.__bufferd_err - self.__bufferd_err = b'' + self.__bufferd_err = b"" return ret return self._read_bytes_err(amount_of_bytes) def readOut_line(self) -> bytes: byt = self.readOut(10) while byt: - sp = byt.split(b'\n') + sp = byt.split(b"\n") if len(sp) > 1: self.__bufferd_out = sp[1] return sp[0] @@ -56,28 +55,30 @@ def readOut_line(self) -> bytes: def readErr_line(self) -> bytes: byt = self.readErr(10) while byt: - sp = byt.split(b'\n') + sp = byt.split(b"\n") if len(sp) > 1: self.__bufferd_err = sp[1] return sp[0] byt += self.readErr(10) return byt + class SshOutput(Output): - def __init__(self,out:BufferedReader|None,err:BufferedReader|None): + def __init__(self, out: BufferedReader | None, err: BufferedReader | None): self.__out = out self.__err = err super().__init__() - def _read_bytes_err(self, amount_of_bytes:int) -> bytes: + def _read_bytes_err(self, amount_of_bytes: int) -> bytes: if self.__err: return self.__err.read(amount_of_bytes) - return b'' + return b"" - def _read_bytes_out(self, amount_of_bytes:int) -> bytes: + def _read_bytes_out(self, amount_of_bytes: int) -> bytes: if self.__out: return self.__out.read(amount_of_bytes) - return b'' + return b"" + class WritableOutput(Output): """A way to create a fileStream that can be used as a CommandOutput by other functions""" @@ -85,10 +86,10 @@ class WritableOutput(Output): def __init__(self) -> None: self.readerOut, self.writerOut = os.pipe() self.readerErr, self.writerErr = os.pipe() - os.set_inheritable(self.readerOut,True) - os.set_inheritable(self.readerErr,True) - os.set_inheritable(self.writerOut,True) - os.set_inheritable(self.writerErr,True) + os.set_inheritable(self.readerOut, True) + os.set_inheritable(self.readerErr, True) + os.set_inheritable(self.writerOut, True) + os.set_inheritable(self.writerErr, True) super().__init__() def writeOut(self, bytes_to_write: bytes) -> None: diff --git a/benchkit/shell/CommunicationLayer/hook.py b/benchkit/shell/CommunicationLayer/hook.py index f51c58cd..16ca12ad 100644 --- a/benchkit/shell/CommunicationLayer/hook.py +++ b/benchkit/shell/CommunicationLayer/hook.py @@ -1,3 +1,6 @@ +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + from __future__ import annotations # Otherwise Queue comlains about typing from abc import ABC, abstractmethod @@ -11,32 +14,31 @@ # -> Hook should have getPassthrough() removed # This would allow for composition where every hook needs to end in a result hook (deafault is voiding it -> would be async) + class OutputBuffer: - def __init__(self,out:Output) -> None: - self.queue_out:Queue[bytes]=Queue() - self.out=out + def __init__(self, out: Output) -> None: + self.queue_out: Queue[bytes] = Queue() + self.out = out logger_process_out = Process( - target=self.result_thread, - args=( - self.out, - self.queue_out, - ), - ) + target=self.result_thread, + args=( + self.out, + self.queue_out, + ), + ) err_void = Process( - target=self.void_err, - args=( - self.out, - ), - ) + target=self.void_err, + args=(self.out,), + ) logger_process_out.start() err_void.start() @staticmethod - def result_thread(out:Output,output_queue:Queue[bytes]) -> None: - outlines:bytes = b'' + def result_thread(out: Output, output_queue: Queue[bytes]) -> None: + outlines: bytes = b"" outline = out.readOut(10) while outline: outlines += outline @@ -45,7 +47,7 @@ def result_thread(out:Output,output_queue:Queue[bytes]) -> None: print("res ends") @staticmethod - def void_err(out:Output) -> None: + def void_err(out: Output) -> None: outline = out.readErr(10) while outline: outline = out.readErr(10) @@ -55,58 +57,51 @@ def get_result(self) -> bytes: output = self.queue_out.get() return output + class VoidOutput: - def __init__(self,out:Output) -> None: - self.out=out + def __init__(self, out: Output) -> None: + self.out = out void_process_out = Process( - target=self.void_out, - args=( - self.out, - ), - ) + target=self.void_out, + args=(self.out,), + ) void_process_err = Process( - target=self.void_err, - args=( - self.out, - ), - ) + target=self.void_err, + args=(self.out,), + ) void_process_out.start() void_process_err.start() @staticmethod - def void_out(out:Output) -> None: + def void_out(out: Output) -> None: outline = out.readOut(10) while outline: outline = out.readOut(10) @staticmethod - def void_err(out:Output) -> None: + def void_err(out: Output) -> None: outline = out.readErr(10) while outline: outline = out.readErr(10) + class Hook(ABC): @abstractmethod - def startHookFunction(self,comandOutput:Output) -> None: + def startHookFunction(self, comandOutput: Output) -> None: pass @abstractmethod def getPassthrough(self) -> WritableOutput: pass + class WriterHook(Hook): - def __init__(self,hookFunction:Callable[[Output,WritableOutput],None]): + def __init__(self, hookFunction: Callable[[Output, WritableOutput], None]): self.__output = WritableOutput() self.hookFunction = hookFunction - def startHookFunction(self,comandOutput:Output): - p = Process( - target=self.hookFunction, - args=( - comandOutput, - self.__output - ) - ) + def startHookFunction(self, comandOutput: Output): + p = Process(target=self.hookFunction, args=(comandOutput, self.__output)) p.start() self.__output.endWritingErr() self.__output.endWritingOut() @@ -115,11 +110,12 @@ def getPassthrough(self): return self.__output - class ReaderHook(Hook): @staticmethod - def pasAlongStdOut(input:Output ,output:WritableOutput,splitof:WritableOutput,void_stdout:bool): + def pasAlongStdOut( + input: Output, output: WritableOutput, splitof: WritableOutput, void_stdout: bool + ): output.endWritingErr() splitof.endWritingErr() @@ -136,7 +132,9 @@ def pasAlongStdOut(input:Output ,output:WritableOutput,splitof:WritableOutput,vo splitof.endWritingOut() @staticmethod - def pasAlongStdErr(input:Output ,output:WritableOutput,splitof:WritableOutput,void_stderr:bool): + def pasAlongStdErr( + input: Output, output: WritableOutput, splitof: WritableOutput, void_stderr: bool + ): output.endWritingOut() splitof.endWritingOut() @@ -153,47 +151,35 @@ def pasAlongStdErr(input:Output ,output:WritableOutput,splitof:WritableOutput,vo if not void_stderr: splitof.endWritingErr() - def __init__(self,hookFunction:Callable[[Output],None],voidStdOut:bool=False,voidStdErr:bool=False): + def __init__( + self, + hookFunction: Callable[[Output], None], + voidStdOut: bool = False, + voidStdErr: bool = False, + ): self.__output = WritableOutput() self.__splitof = WritableOutput() self.hookfunction = hookFunction self.__voidStdErr = voidStdErr self.__voidStdOut = voidStdOut - @staticmethod - def hookwrap(input:WritableOutput,hookfunction:Callable[[Output],None]): + def hookwrap(input: WritableOutput, hookfunction: Callable[[Output], None]): input.endWritingOut() input.endWritingErr() hookfunction(input) - def startHookFunction(self,comandOutput:Output): + def startHookFunction(self, comandOutput: Output): p1 = Process( target=self.pasAlongStdOut, - args=( - comandOutput, - self.__output, - self.__splitof, - self.__voidStdOut - ) + args=(comandOutput, self.__output, self.__splitof, self.__voidStdOut), ) p2 = Process( target=self.pasAlongStdErr, - args=( - comandOutput, - self.__output, - self.__splitof, - self.__voidStdErr - ) - ) - p3 = Process( - target=self.hookwrap, - args=( - self.__splitof, - self.hookfunction - ) + args=(comandOutput, self.__output, self.__splitof, self.__voidStdErr), ) + p3 = Process(target=self.hookwrap, args=(self.__splitof, self.hookfunction)) p1.start() p2.start() p3.start() @@ -205,6 +191,7 @@ def startHookFunction(self,comandOutput:Output): def getPassthrough(self): return self.__output + """ file notes voiding something for the reader function can be done in a more efficient method, diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 8d10c86d..7f94fdc3 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -30,7 +30,7 @@ def shell_out_new( timeout: Optional[int] = None, output_is_log: bool = False, ignore_ret_codes: Iterable[int] = (), - run_in_background = False, + run_in_background=False, # split_arguments: bool = True, Support REMOVED -> can be achieved in another manner ) -> str: """ @@ -122,10 +122,9 @@ def sucsess(value): # Use the visitor patterns to convert our tree to an executable string stringCommand = getString(commandTree) - - def try_conventing_bystring_to_readable_characters(bytestring:bytes) -> str|bytes: + def try_conventing_bystring_to_readable_characters(bytestring: bytes) -> str | bytes: try: - return bytestring.decode('utf-8') + return bytestring.decode("utf-8") except Exception: return bytestring @@ -134,20 +133,24 @@ def try_conventing_bystring_to_readable_characters(bytestring:bytes) -> str|byte else: stderr_out = subprocess.PIPE - def logger_hook_out(input:Output): + def logger_hook_out(input: Output): a = input.readOut_line() while a: - print(f"\33[34m[OUT | {stringCommand}] {try_conventing_bystring_to_readable_characters(a)}\033[0m") + print( + f"\33[34m[OUT | {stringCommand}] {try_conventing_bystring_to_readable_characters(a)}\033[0m" + ) a = input.readOut_line() - def logger_hook_err(input:Output): + def logger_hook_err(input: Output): a = input.readErr_line() while a: - print(f"\033[91m[ERR | {stringCommand}] {try_conventing_bystring_to_readable_characters(a)}\033[0m") + print( + f"\033[91m[ERR | {stringCommand}] {try_conventing_bystring_to_readable_characters(a)}\033[0m" + ) a = input.readErr_line() - log_std_out_hook = ReaderHook(logger_hook_out,voidStdErr=True) - log_std_err_hook = ReaderHook(logger_hook_err,voidStdOut=True) + log_std_out_hook = ReaderHook(logger_hook_out, voidStdErr=True) + log_std_err_hook = ReaderHook(logger_hook_err, voidStdOut=True) shell_process = subprocess.Popen( # why exec: @@ -166,13 +169,13 @@ def logger_hook_err(input:Output): print(shell_process.pid) try: if shell_process.stdin is not None and std_input is not None: - shell_process.stdin.write(std_input.encode('utf-8')) + shell_process.stdin.write(std_input.encode("utf-8")) shell_process.stdin.flush() if shell_process.stdin is not None: shell_process.stdin.close() - command_output = SshOutput(shell_process.stdout,shell_process.stderr) + command_output = SshOutput(shell_process.stdout, shell_process.stderr) if output_is_log: log_std_out_hook.startHookFunction(command_output) @@ -191,7 +194,7 @@ def logger_hook_err(input:Output): output = try_conventing_bystring_to_readable_characters(buffer.get_result()) except subprocess.TimeoutExpired as err: - #killing this will send eof to and end the hooks aswell + # killing this will send eof to and end the hooks aswell shell_process.kill() raise err diff --git a/tests/ast-shell/readme.md b/tests/ast-shell/readme.md index a2e51251..7940114a 100644 --- a/tests/ast-shell/readme.md +++ b/tests/ast-shell/readme.md @@ -10,4 +10,10 @@ Run `python -m unittest ast_shell -v` in this folder to run the current tests. This takes about 1400 seconds for the current folder. It will spam the terminal to make it not do this add `-b` to the command. -other_tests.py is a file containing some personal testing code and will be converted to proper test cases at a later date \ No newline at end of file +other_tests.py is a file containing some personal testing code and will be converted to proper test cases at a later date + +## Todo + +- Smaller unit tests for the internal structures +- Tests for the async ast-shell +- Try something that takes less time for the timeout tests as they would fail on slower systems aswell. \ No newline at end of file diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py index 73102ddd..b45ea3e1 100644 --- a/tests/ast-shell/shell_tests/ast_shell.py +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -1,3 +1,6 @@ +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + import itertools import pathlib import re @@ -14,15 +17,18 @@ # We will have to write tests in a different way to check what the user sees. # To this end these tests only test functionality -def get_arguments_dict_list(overwrite_arguments_dict:dict[str,Any]|None=None,include_cosmetic:bool=True): + +def get_arguments_dict_list( + overwrite_arguments_dict: dict[str, Any] | None = None, include_cosmetic: bool = True +): if overwrite_arguments_dict is None: overwrite_arguments_dict = {} arguments_dict = {} if include_cosmetic: arguments_dict = { - "print_output": [True,False], - "output_is_log": [True,False], + "print_output": [True, False], + "output_is_log": [True, False], } for argument_key in overwrite_arguments_dict: @@ -37,125 +43,144 @@ def get_arguments_dict_list(overwrite_arguments_dict:dict[str,Any]|None=None,inc argument_permutations = itertools.product(*arguments) result_list = [] for argument_permutation in list(argument_permutations): - result_list.append(dict(zip(keys,argument_permutation))) + result_list.append(dict(zip(keys, argument_permutation))) return result_list - class BasicShellTests(unittest.TestCase): # @unittest.skip("disabled for debugging") def test_echo(self): """Basic tests to see if the command-line can execute a given command and return the correct output given a range of arguments""" - argument_list = get_arguments_dict_list({ - "redirect_stderr_to_stdout": [True,False], - "current_dir": [None, pathlib.Path(__file__).parent.resolve()], - "environment": [None,{"test":"test"}], - "timeout": [None,20], - "ignore_ret_codes": [(),(1,)], - }) + argument_list = get_arguments_dict_list( + { + "redirect_stderr_to_stdout": [True, False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None, {"test": "test"}], + "timeout": [None, 20], + "ignore_ret_codes": [(), (1,)], + } + ) for args in argument_list: with timeout(1): # test echo with multiple parameters to make sure none mess up the result a = shell_out_new( - f"echo benchkit_echo_test {str(args)}", - print_command=True, - **args + f"echo benchkit_echo_test {str(args)}", print_command=True, **args + ) + expeced_result = re.sub(r"\'", "", f"benchkit_echo_test {str(args)}") + self.assertEqual( + a, + f"{expeced_result}\n", + "shell does not provide the right output in the result", ) - expeced_result = re.sub(r'\'', '', f"benchkit_echo_test {str(args)}") - self.assertEqual(a,f"{expeced_result}\n","shell does not provide the right output in the result") - # @unittest.skip("disabled for debugging") def test_run_forever(self): """Test to make sure that commands do not exit prematurely""" - argument_list = get_arguments_dict_list({ - "redirect_stderr_to_stdout": [True,False], - "current_dir": [None, pathlib.Path(__file__).parent.resolve()], - "environment": [None,{"test":"test"}], - "timeout": [None,20], - "ignore_ret_codes": [(),(1,)], - }) + argument_list = get_arguments_dict_list( + { + "redirect_stderr_to_stdout": [True, False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None, {"test": "test"}], + "timeout": [None, 20], + "ignore_ret_codes": [(), (1,)], + } + ) for args in argument_list: with self.assertRaises(TestTimeout): with timeout(5): - shell_out_new(script_path_string("runForever"),**args) + shell_out_new(script_path_string("runForever"), **args) # @unittest.skip("disabled for debugging") def test_timeout(self): """testing the timeout argument""" - argument_list = get_arguments_dict_list({ - "redirect_stderr_to_stdout": [True,False], - "current_dir": [None, pathlib.Path(__file__).parent.resolve()], - "environment": [None,{"test":"test"}], - "ignore_ret_codes": [(),(1,)], - "timeout": [1,2], # tested argument - }) + argument_list = get_arguments_dict_list( + { + "redirect_stderr_to_stdout": [True, False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None, {"test": "test"}], + "ignore_ret_codes": [(), (1,)], + "timeout": [1, 2], # tested argument + } + ) # making sure that a program times out due to the argument for args in argument_list: with timeout(5): with self.assertRaises(subprocess.TimeoutExpired): - shell_out_new(script_path_string("runForever"),**args) - - argument_list = get_arguments_dict_list({ - "redirect_stderr_to_stdout": [True,False], - "current_dir": [None, pathlib.Path(__file__).parent.resolve()], - "environment": [None,{"test":"test"}], - "ignore_ret_codes": [(),(1,)], - "timeout": [6], # tested argument - }) + shell_out_new(script_path_string("runForever"), **args) + + argument_list = get_arguments_dict_list( + { + "redirect_stderr_to_stdout": [True, False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None, {"test": "test"}], + "ignore_ret_codes": [(), (1,)], + "timeout": [6], # tested argument + } + ) # making sure that it does not time out before the given timeout for args in argument_list: with self.assertRaises(TestTimeout): with timeout(5): - shell_out_new(script_path_string("runForever"),**args) + shell_out_new(script_path_string("runForever"), **args) # @unittest.skip("disabled for debugging") def test_input(self): """testing the use of the std_input parameter""" - argument_list = get_arguments_dict_list({ - "redirect_stderr_to_stdout": [True,False], - "current_dir": [None, pathlib.Path(__file__).parent.resolve()], - "environment": [None,{"test":"test"}], - "ignore_ret_codes": [(),(1,)], - }) + argument_list = get_arguments_dict_list( + { + "redirect_stderr_to_stdout": [True, False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None, {"test": "test"}], + "ignore_ret_codes": [(), (1,)], + } + ) for args in argument_list: with timeout(10): - out = shell_out_new(script_path_string('writeBack'),std_input=f"benchkit input test {str(args)}\n",**args) - self.assertEqual(out,f"benchkit input test {str(args)}\n",f"recieved{out}") + out = shell_out_new( + script_path_string("writeBack"), + std_input=f"benchkit input test {str(args)}\n", + **args, + ) + self.assertEqual(out, f"benchkit input test {str(args)}\n", f"recieved{out}") # @unittest.skip("disabled for debugging") def test_command_blocks_io_overfull(self): - ''' Overfull internal IO buffers would halt the execution of the command - Here we test whether or not this happens in our implementation - ''' - argument_list = get_arguments_dict_list({ - "redirect_stderr_to_stdout": [True,False], - "current_dir": [None, pathlib.Path(__file__).parent.resolve()], - "environment": [None,{"test":"test"}], - "timeout": [None,20], - "ignore_ret_codes": [(),(1,)], - }) + """Overfull internal IO buffers would halt the execution of the command + Here we test whether or not this happens in our implementation + """ + argument_list = get_arguments_dict_list( + { + "redirect_stderr_to_stdout": [True, False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None, {"test": "test"}], + "timeout": [None, 20], + "ignore_ret_codes": [(), (1,)], + } + ) for args in argument_list: try: with timeout(20): # tests for filling the std_err - shell_out_new(script_path_string('fillErrThenOut'), **args) + shell_out_new(script_path_string("fillErrThenOut"), **args) except TestTimeout: - self.fail(f"the command got halted during excecution for {script_path_string('fillErrThenOut')} with args: {args}") + self.fail( + f"the command got halted during excecution for {script_path_string('fillErrThenOut')} with args: {args}" + ) raise TestTimeout try: with timeout(20): # tests for filling the std_io - shell_out_new(script_path_string('fillOutThenErr'), **args) + shell_out_new(script_path_string("fillOutThenErr"), **args) except TestTimeout: self.fail("the command got halted during excecution") raise TestTimeout -if __name__ == '__main__': + +if __name__ == "__main__": unittest.main() diff --git a/tests/ast-shell/shell_tests/other_tests.py b/tests/ast-shell/shell_tests/other_tests.py index 54bf56ff..697d69ce 100644 --- a/tests/ast-shell/shell_tests/other_tests.py +++ b/tests/ast-shell/shell_tests/other_tests.py @@ -99,6 +99,7 @@ def runtest(): print(retcode) print(str(output.decode("utf-8"))) + def testhalt(): # shell_process = subprocess.Popen( # # why exec: @@ -113,9 +114,18 @@ def testhalt(): # stdin=subprocess.PIPE, # ) # shell_process.wait() - args = {'print_output': True, 'output_is_log': True, 'redirect_stderr_to_stdout': False, 'current_dir': None, 'environment': None, 'timeout': None, 'ignore_ret_codes': ()} - out = shell_out_new(script_path_string('fillErrThenOut'),**args) + args = { + "print_output": True, + "output_is_log": True, + "redirect_stderr_to_stdout": False, + "current_dir": None, + "environment": None, + "timeout": None, + "ignore_ret_codes": (), + } + out = shell_out_new(script_path_string("fillErrThenOut"), **args) print("yeet") + if __name__ == "__main__": - testhalt() \ No newline at end of file + testhalt() diff --git a/tests/ast-shell/shell_tests/shell_scripts.py b/tests/ast-shell/shell_tests/shell_scripts.py index 40f53e00..3af4751f 100644 --- a/tests/ast-shell/shell_tests/shell_scripts.py +++ b/tests/ast-shell/shell_tests/shell_scripts.py @@ -8,26 +8,26 @@ class TestTimeout(Exception): pass -class timeout: - def __init__(self, seconds, error_message=None): - if error_message is None: - error_message = 'test timed out after {}s.'.format(seconds) - self.seconds = seconds - self.error_message = error_message - def handle_timeout(self, signum, frame): - raise TestTimeout(self.error_message) +class timeout: + def __init__(self, seconds, error_message=None): + if error_message is None: + error_message = "test timed out after {}s.".format(seconds) + self.seconds = seconds + self.error_message = error_message - def __enter__(self): - signal.signal(signal.SIGALRM, self.handle_timeout) - signal.alarm(self.seconds) + def handle_timeout(self, signum, frame): + raise TestTimeout(self.error_message) - def __exit__(self, exc_type, exc_val, exc_tb): - signal.alarm(0) + def __enter__(self): + signal.signal(signal.SIGALRM, self.handle_timeout) + signal.alarm(self.seconds) + def __exit__(self, exc_type, exc_val, exc_tb): + signal.alarm(0) -def script_path_string(script_name:str): +def script_path_string(script_name: str): folder = pathlib.Path(__file__).parent.resolve() print(folder) - return str(folder / f"./shell_scripts/{script_name}.sh") \ No newline at end of file + return str(folder / f"./shell_scripts/{script_name}.sh") From 597abe2208f508b3291cf8c1e63de84da801783e Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Fri, 30 May 2025 00:46:26 +0200 Subject: [PATCH 21/71] do more changes for CI --- benchkit/shell/CommunicationLayer/hook.py | 3 ++- benchkit/shell/ast_shell_out.py | 6 ++++-- tests/ast-shell/shell_tests/ast_shell.py | 3 ++- tests/ast-shell/shell_tests/other_tests.py | 3 +-- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/hook.py b/benchkit/shell/CommunicationLayer/hook.py index 16ca12ad..e1b4482d 100644 --- a/benchkit/shell/CommunicationLayer/hook.py +++ b/benchkit/shell/CommunicationLayer/hook.py @@ -12,7 +12,8 @@ # change -> this should be a "result hook" # -> Hook should be a pastrough hook # -> Hook should have getPassthrough() removed -# This would allow for composition where every hook needs to end in a result hook (deafault is voiding it -> would be async) +# This would allow for composition where every hook needs to end in a result hook +# (deafault is voiding it -> would be async) class OutputBuffer: diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 7f94fdc3..80ba8d05 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -137,7 +137,8 @@ def logger_hook_out(input: Output): a = input.readOut_line() while a: print( - f"\33[34m[OUT | {stringCommand}] {try_conventing_bystring_to_readable_characters(a)}\033[0m" + f"\33[34m[OUT | {stringCommand}] \ + {try_conventing_bystring_to_readable_characters(a)}\033[0m" ) a = input.readOut_line() @@ -145,7 +146,8 @@ def logger_hook_err(input: Output): a = input.readErr_line() while a: print( - f"\033[91m[ERR | {stringCommand}] {try_conventing_bystring_to_readable_characters(a)}\033[0m" + f"\033[91m[ERR | {stringCommand}] \ + {try_conventing_bystring_to_readable_characters(a)}\033[0m" ) a = input.readErr_line() diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py index b45ea3e1..a44f62ec 100644 --- a/tests/ast-shell/shell_tests/ast_shell.py +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -169,7 +169,8 @@ def test_command_blocks_io_overfull(self): shell_out_new(script_path_string("fillErrThenOut"), **args) except TestTimeout: self.fail( - f"the command got halted during excecution for {script_path_string('fillErrThenOut')} with args: {args}" + f"the command got halted during excecution for \ + {script_path_string('fillErrThenOut')} with args: {args}" ) raise TestTimeout diff --git a/tests/ast-shell/shell_tests/other_tests.py b/tests/ast-shell/shell_tests/other_tests.py index 697d69ce..1653e02b 100644 --- a/tests/ast-shell/shell_tests/other_tests.py +++ b/tests/ast-shell/shell_tests/other_tests.py @@ -3,7 +3,6 @@ import shlex import subprocess -import sys from shell_scripts import script_path_string @@ -123,7 +122,7 @@ def testhalt(): "timeout": None, "ignore_ret_codes": (), } - out = shell_out_new(script_path_string("fillErrThenOut"), **args) + shell_out_new(script_path_string("fillErrThenOut"), **args) print("yeet") From 7cb0c8197387b3e8fa46374b4a0739b97511aa77 Mon Sep 17 00:00:00 2001 From: aaronbog <48908435+aaronbog@users.noreply.github.com> Date: Fri, 30 May 2025 00:49:08 +0200 Subject: [PATCH 22/71] add basic tests that go along with the ast-shell. (#2) --- .../CommunicationLayer/comunication_handle.py | 35 ++-- benchkit/shell/CommunicationLayer/hook.py | 130 ++++++------ benchkit/shell/ast_shell_out.py | 35 ++-- benchkit/shell/commandAST/visitor.py | 8 +- tests/ast-shell/configure.sh | 4 + tests/ast-shell/dependency-paths.txt | 2 + tests/ast-shell/readme.md | 19 ++ tests/ast-shell/runForever.sh | 1 - tests/ast-shell/shell_tests/ast_shell.py | 187 ++++++++++++++++++ .../other_tests.py} | 70 +++---- tests/ast-shell/shell_tests/shell_scripts.py | 33 ++++ .../shell_scripts/fillErrThenOut.sh | 10 + .../shell_scripts/fillOutThenErr.sh | 10 + .../shell_tests/shell_scripts/runForever.sh | 1 + .../shell_scripts}/waitThenPrint.sh | 0 .../shell_tests/shell_scripts/writeBack.sh | 5 + 16 files changed, 400 insertions(+), 150 deletions(-) create mode 100755 tests/ast-shell/configure.sh create mode 100644 tests/ast-shell/dependency-paths.txt create mode 100644 tests/ast-shell/readme.md delete mode 100755 tests/ast-shell/runForever.sh create mode 100644 tests/ast-shell/shell_tests/ast_shell.py rename tests/ast-shell/{ast_shell.py => shell_tests/other_tests.py} (68%) create mode 100644 tests/ast-shell/shell_tests/shell_scripts.py create mode 100755 tests/ast-shell/shell_tests/shell_scripts/fillErrThenOut.sh create mode 100755 tests/ast-shell/shell_tests/shell_scripts/fillOutThenErr.sh create mode 100755 tests/ast-shell/shell_tests/shell_scripts/runForever.sh rename tests/ast-shell/{ => shell_tests/shell_scripts}/waitThenPrint.sh (100%) create mode 100755 tests/ast-shell/shell_tests/shell_scripts/writeBack.sh diff --git a/benchkit/shell/CommunicationLayer/comunication_handle.py b/benchkit/shell/CommunicationLayer/comunication_handle.py index 4510c795..1fdd3f57 100644 --- a/benchkit/shell/CommunicationLayer/comunication_handle.py +++ b/benchkit/shell/CommunicationLayer/comunication_handle.py @@ -1,9 +1,9 @@ # Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. # SPDX-License-Identifier: MIT -from io import BufferedReader import os from abc import ABC, abstractmethod +from io import BufferedReader class Output(ABC): @@ -11,11 +11,10 @@ class Output(ABC): functions are due to compatibility""" def __init__(self): - self.__bufferd_out:bytes = b'' - self.__bufferd_err:bytes = b'' + self.__bufferd_out: bytes = b"" + self.__bufferd_err: bytes = b"" self.a = 2 - @abstractmethod def _read_bytes_out(self, amount_of_bytes: int) -> bytes: pass @@ -28,7 +27,7 @@ def readOut(self, amount_of_bytes: int) -> bytes: """reads at most amount_of_bytes from the available stdout""" if self.__bufferd_out: ret = self.__bufferd_out - self.__bufferd_out = b'' + self.__bufferd_out = b"" self.a = 0 return ret self.a += 1 @@ -39,14 +38,14 @@ def readErr(self, amount_of_bytes: int) -> bytes: """reads at most amount_of_bytes from the available stderr""" if self.__bufferd_err: ret = self.__bufferd_err - self.__bufferd_err = b'' + self.__bufferd_err = b"" return ret return self._read_bytes_err(amount_of_bytes) def readOut_line(self) -> bytes: byt = self.readOut(10) while byt: - sp = byt.split(b'\n') + sp = byt.split(b"\n") if len(sp) > 1: self.__bufferd_out = sp[1] return sp[0] @@ -56,28 +55,30 @@ def readOut_line(self) -> bytes: def readErr_line(self) -> bytes: byt = self.readErr(10) while byt: - sp = byt.split(b'\n') + sp = byt.split(b"\n") if len(sp) > 1: self.__bufferd_err = sp[1] return sp[0] byt += self.readErr(10) return byt + class SshOutput(Output): - def __init__(self,out:BufferedReader|None,err:BufferedReader|None): + def __init__(self, out: BufferedReader | None, err: BufferedReader | None): self.__out = out self.__err = err super().__init__() - def _read_bytes_err(self, amount_of_bytes:int) -> bytes: + def _read_bytes_err(self, amount_of_bytes: int) -> bytes: if self.__err: return self.__err.read(amount_of_bytes) - return b'' + return b"" - def _read_bytes_out(self, amount_of_bytes:int) -> bytes: + def _read_bytes_out(self, amount_of_bytes: int) -> bytes: if self.__out: return self.__out.read(amount_of_bytes) - return b'' + return b"" + class WritableOutput(Output): """A way to create a fileStream that can be used as a CommandOutput by other functions""" @@ -85,10 +86,10 @@ class WritableOutput(Output): def __init__(self) -> None: self.readerOut, self.writerOut = os.pipe() self.readerErr, self.writerErr = os.pipe() - os.set_inheritable(self.readerOut,True) - os.set_inheritable(self.readerErr,True) - os.set_inheritable(self.writerOut,True) - os.set_inheritable(self.writerErr,True) + os.set_inheritable(self.readerOut, True) + os.set_inheritable(self.readerErr, True) + os.set_inheritable(self.writerOut, True) + os.set_inheritable(self.writerErr, True) super().__init__() def writeOut(self, bytes_to_write: bytes) -> None: diff --git a/benchkit/shell/CommunicationLayer/hook.py b/benchkit/shell/CommunicationLayer/hook.py index b4e3d847..e1b4482d 100644 --- a/benchkit/shell/CommunicationLayer/hook.py +++ b/benchkit/shell/CommunicationLayer/hook.py @@ -1,42 +1,45 @@ -from __future__ import annotations #Otherwise Queue comlains about typing +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + +from __future__ import annotations # Otherwise Queue comlains about typing + from abc import ABC, abstractmethod from multiprocessing import Process, Queue from typing import Callable -from benchkit.shell.CommunicationLayer.comunication_handle import Output, WritableOutput - +from benchkit.shell.CommunicationLayer.comunication_handle import Output, WritableOutput # change -> this should be a "result hook" # -> Hook should be a pastrough hook # -> Hook should have getPassthrough() removed -# This would allow for composition where every hook needs to end in a result hook (deafault is voiding it -> would be async) +# This would allow for composition where every hook needs to end in a result hook +# (deafault is voiding it -> would be async) + class OutputBuffer: - def __init__(self,out:Output) -> None: - self.queue_out:Queue[bytes]=Queue() - self.out=out + def __init__(self, out: Output) -> None: + self.queue_out: Queue[bytes] = Queue() + self.out = out logger_process_out = Process( - target=self.result_thread, - args=( - self.out, - self.queue_out, - ), - ) + target=self.result_thread, + args=( + self.out, + self.queue_out, + ), + ) err_void = Process( - target=self.void_err, - args=( - self.out, - ), - ) + target=self.void_err, + args=(self.out,), + ) logger_process_out.start() err_void.start() @staticmethod - def result_thread(out:Output,output_queue:Queue[bytes]) -> None: - outlines:bytes = b'' + def result_thread(out: Output, output_queue: Queue[bytes]) -> None: + outlines: bytes = b"" outline = out.readOut(10) while outline: outlines += outline @@ -45,7 +48,7 @@ def result_thread(out:Output,output_queue:Queue[bytes]) -> None: print("res ends") @staticmethod - def void_err(out:Output) -> None: + def void_err(out: Output) -> None: outline = out.readErr(10) while outline: outline = out.readErr(10) @@ -55,58 +58,51 @@ def get_result(self) -> bytes: output = self.queue_out.get() return output + class VoidOutput: - def __init__(self,out:Output) -> None: - self.out=out + def __init__(self, out: Output) -> None: + self.out = out void_process_out = Process( - target=self.void_out, - args=( - self.out, - ), - ) + target=self.void_out, + args=(self.out,), + ) void_process_err = Process( - target=self.void_err, - args=( - self.out, - ), - ) + target=self.void_err, + args=(self.out,), + ) void_process_out.start() void_process_err.start() @staticmethod - def void_out(out:Output) -> None: + def void_out(out: Output) -> None: outline = out.readOut(10) while outline: outline = out.readOut(10) @staticmethod - def void_err(out:Output) -> None: + def void_err(out: Output) -> None: outline = out.readErr(10) while outline: outline = out.readErr(10) + class Hook(ABC): @abstractmethod - def startHookFunction(self,comandOutput:Output) -> None: + def startHookFunction(self, comandOutput: Output) -> None: pass @abstractmethod def getPassthrough(self) -> WritableOutput: pass + class WriterHook(Hook): - def __init__(self,hookFunction:Callable[[Output,WritableOutput],None]): + def __init__(self, hookFunction: Callable[[Output, WritableOutput], None]): self.__output = WritableOutput() self.hookFunction = hookFunction - def startHookFunction(self,comandOutput:Output): - p = Process( - target=self.hookFunction, - args=( - comandOutput, - self.__output - ) - ) + def startHookFunction(self, comandOutput: Output): + p = Process(target=self.hookFunction, args=(comandOutput, self.__output)) p.start() self.__output.endWritingErr() self.__output.endWritingOut() @@ -115,11 +111,12 @@ def getPassthrough(self): return self.__output - class ReaderHook(Hook): @staticmethod - def pasAlongStdOut(input:Output ,output:WritableOutput,splitof:WritableOutput,void_stdout:bool): + def pasAlongStdOut( + input: Output, output: WritableOutput, splitof: WritableOutput, void_stdout: bool + ): output.endWritingErr() splitof.endWritingErr() @@ -136,7 +133,9 @@ def pasAlongStdOut(input:Output ,output:WritableOutput,splitof:WritableOutput,vo splitof.endWritingOut() @staticmethod - def pasAlongStdErr(input:Output ,output:WritableOutput,splitof:WritableOutput,void_stderr:bool): + def pasAlongStdErr( + input: Output, output: WritableOutput, splitof: WritableOutput, void_stderr: bool + ): output.endWritingOut() splitof.endWritingOut() @@ -153,47 +152,35 @@ def pasAlongStdErr(input:Output ,output:WritableOutput,splitof:WritableOutput,vo if not void_stderr: splitof.endWritingErr() - def __init__(self,hookFunction:Callable[[Output],None],voidStdOut:bool=False,voidStdErr:bool=False): + def __init__( + self, + hookFunction: Callable[[Output], None], + voidStdOut: bool = False, + voidStdErr: bool = False, + ): self.__output = WritableOutput() self.__splitof = WritableOutput() self.hookfunction = hookFunction self.__voidStdErr = voidStdErr self.__voidStdOut = voidStdOut - @staticmethod - def hookwrap(input:WritableOutput,hookfunction:Callable[[Output],None]): + def hookwrap(input: WritableOutput, hookfunction: Callable[[Output], None]): input.endWritingOut() input.endWritingErr() hookfunction(input) - def startHookFunction(self,comandOutput:Output): + def startHookFunction(self, comandOutput: Output): p1 = Process( target=self.pasAlongStdOut, - args=( - comandOutput, - self.__output, - self.__splitof, - self.__voidStdOut - ) + args=(comandOutput, self.__output, self.__splitof, self.__voidStdOut), ) p2 = Process( target=self.pasAlongStdErr, - args=( - comandOutput, - self.__output, - self.__splitof, - self.__voidStdErr - ) - ) - p3 = Process( - target=self.hookwrap, - args=( - self.__splitof, - self.hookfunction - ) + args=(comandOutput, self.__output, self.__splitof, self.__voidStdErr), ) + p3 = Process(target=self.hookwrap, args=(self.__splitof, self.hookfunction)) p1.start() p2.start() p3.start() @@ -205,6 +192,7 @@ def startHookFunction(self,comandOutput:Output): def getPassthrough(self): return self.__output + """ file notes voiding something for the reader function can be done in a more efficient method, diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 090d3de2..80ba8d05 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -7,11 +7,11 @@ import subprocess from typing import Dict, Iterable, List, Optional -from benchkit.shell.CommunicationLayer.comunication_handle import Output, SshOutput -from benchkit.shell.CommunicationLayer.hook import OutputBuffer, ReaderHook, VoidOutput from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.commandNodes import CommandNode from benchkit.shell.commandAST.visitor import getString +from benchkit.shell.CommunicationLayer.comunication_handle import Output, SshOutput +from benchkit.shell.CommunicationLayer.hook import OutputBuffer, ReaderHook, VoidOutput def shell_out_new( @@ -30,7 +30,7 @@ def shell_out_new( timeout: Optional[int] = None, output_is_log: bool = False, ignore_ret_codes: Iterable[int] = (), - run_in_background = False, + run_in_background=False, # split_arguments: bool = True, Support REMOVED -> can be achieved in another manner ) -> str: """ @@ -122,10 +122,9 @@ def sucsess(value): # Use the visitor patterns to convert our tree to an executable string stringCommand = getString(commandTree) - - def try_conventing_bystring_to_readable_characters(bytestring:bytes) -> str|bytes: + def try_conventing_bystring_to_readable_characters(bytestring: bytes) -> str | bytes: try: - return bytestring.decode('utf-8') + return bytestring.decode("utf-8") except Exception: return bytestring @@ -134,20 +133,26 @@ def try_conventing_bystring_to_readable_characters(bytestring:bytes) -> str|byte else: stderr_out = subprocess.PIPE - def logger_hook_out(input:Output): + def logger_hook_out(input: Output): a = input.readOut_line() while a: - print(f"\33[34m[OUT | {stringCommand}] {try_conventing_bystring_to_readable_characters(a)}\033[0m") + print( + f"\33[34m[OUT | {stringCommand}] \ + {try_conventing_bystring_to_readable_characters(a)}\033[0m" + ) a = input.readOut_line() - def logger_hook_err(input:Output): + def logger_hook_err(input: Output): a = input.readErr_line() while a: - print(f"\033[91m[ERR | {stringCommand}] {try_conventing_bystring_to_readable_characters(a)}\033[0m") + print( + f"\033[91m[ERR | {stringCommand}] \ + {try_conventing_bystring_to_readable_characters(a)}\033[0m" + ) a = input.readErr_line() - log_std_out_hook = ReaderHook(logger_hook_out,voidStdErr=True) - log_std_err_hook = ReaderHook(logger_hook_err,voidStdOut=True) + log_std_out_hook = ReaderHook(logger_hook_out, voidStdErr=True) + log_std_err_hook = ReaderHook(logger_hook_err, voidStdOut=True) shell_process = subprocess.Popen( # why exec: @@ -166,13 +171,13 @@ def logger_hook_err(input:Output): print(shell_process.pid) try: if shell_process.stdin is not None and std_input is not None: - shell_process.stdin.write(std_input.encode('utf-8')) + shell_process.stdin.write(std_input.encode("utf-8")) shell_process.stdin.flush() if shell_process.stdin is not None: shell_process.stdin.close() - command_output = SshOutput(shell_process.stdout,shell_process.stderr) + command_output = SshOutput(shell_process.stdout, shell_process.stderr) if output_is_log: log_std_out_hook.startHookFunction(command_output) @@ -191,7 +196,7 @@ def logger_hook_err(input:Output): output = try_conventing_bystring_to_readable_characters(buffer.get_result()) except subprocess.TimeoutExpired as err: - #killing this will send eof to and end the hooks aswell + # killing this will send eof to and end the hooks aswell shell_process.kill() raise err diff --git a/benchkit/shell/commandAST/visitor.py b/benchkit/shell/commandAST/visitor.py index 72e99de1..94c4e135 100755 --- a/benchkit/shell/commandAST/visitor.py +++ b/benchkit/shell/commandAST/visitor.py @@ -6,10 +6,12 @@ from benchkit.shell.commandAST.abstractTypes import Node from benchkit.shell.commandAST.command import command -from benchkit.shell.commandAST.nodes.commandNodes import CommandNode, InlineCommandNode, StringNode -from benchkit.shell.commandAST.nodes.variable_node import ( - Visitor, +from benchkit.shell.commandAST.nodes.commandNodes import ( + CommandNode, + InlineCommandNode, + StringNode, ) +from benchkit.shell.commandAST.nodes.variable_node import Visitor from benchkit.shell.commandAST.Visitors.print_visitor import printASTVisitor from benchkit.shell.commandAST.Visitors.variable_visitors import ( VariableFinder, diff --git a/tests/ast-shell/configure.sh b/tests/ast-shell/configure.sh new file mode 100755 index 00000000..63b6c293 --- /dev/null +++ b/tests/ast-shell/configure.sh @@ -0,0 +1,4 @@ +#!/bin/sh +set -e + +../../scripts/install_venv.sh diff --git a/tests/ast-shell/dependency-paths.txt b/tests/ast-shell/dependency-paths.txt new file mode 100644 index 00000000..311a08f0 --- /dev/null +++ b/tests/ast-shell/dependency-paths.txt @@ -0,0 +1,2 @@ +../../benchkit +./shell_tests \ No newline at end of file diff --git a/tests/ast-shell/readme.md b/tests/ast-shell/readme.md new file mode 100644 index 00000000..7940114a --- /dev/null +++ b/tests/ast-shell/readme.md @@ -0,0 +1,19 @@ +# This folder contains the files for testing the ast-shell implementation of benchkit + +## Configure venv + +There is a `configure.sh` script. If run from this directory it wil create a working venv that can be started using `. ./venv/bin/activate` + +## Running the tests + +Run `python -m unittest ast_shell -v` in this folder to run the current tests. +This takes about 1400 seconds for the current folder. +It will spam the terminal to make it not do this add `-b` to the command. + +other_tests.py is a file containing some personal testing code and will be converted to proper test cases at a later date + +## Todo + +- Smaller unit tests for the internal structures +- Tests for the async ast-shell +- Try something that takes less time for the timeout tests as they would fail on slower systems aswell. \ No newline at end of file diff --git a/tests/ast-shell/runForever.sh b/tests/ast-shell/runForever.sh deleted file mode 100755 index f0da467c..00000000 --- a/tests/ast-shell/runForever.sh +++ /dev/null @@ -1 +0,0 @@ -while true ; do date ; done \ No newline at end of file diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py new file mode 100644 index 00000000..a44f62ec --- /dev/null +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -0,0 +1,187 @@ +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + +import itertools +import pathlib +import re +import subprocess +import unittest +from typing import Any + +from shell_scripts import TestTimeout, script_path_string, timeout + +from benchkit.shell.ast_shell_out import shell_out_new + +# Due to print statements being inside of threads unittest does +# not allow us to check the output of stdout. +# We will have to write tests in a different way to check what the user sees. +# To this end these tests only test functionality + + +def get_arguments_dict_list( + overwrite_arguments_dict: dict[str, Any] | None = None, include_cosmetic: bool = True +): + if overwrite_arguments_dict is None: + overwrite_arguments_dict = {} + + arguments_dict = {} + if include_cosmetic: + arguments_dict = { + "print_output": [True, False], + "output_is_log": [True, False], + } + + for argument_key in overwrite_arguments_dict: + arguments_dict[argument_key] = overwrite_arguments_dict[argument_key] + + keys = [] + arguments = [] + + for key, arugments in arguments_dict.items(): + keys.append(key) + arguments += [arugments] + argument_permutations = itertools.product(*arguments) + result_list = [] + for argument_permutation in list(argument_permutations): + result_list.append(dict(zip(keys, argument_permutation))) + return result_list + + +class BasicShellTests(unittest.TestCase): + + # @unittest.skip("disabled for debugging") + def test_echo(self): + """Basic tests to see if the command-line can execute a given command + and return the correct output given a range of arguments""" + argument_list = get_arguments_dict_list( + { + "redirect_stderr_to_stdout": [True, False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None, {"test": "test"}], + "timeout": [None, 20], + "ignore_ret_codes": [(), (1,)], + } + ) + for args in argument_list: + with timeout(1): + # test echo with multiple parameters to make sure none mess up the result + a = shell_out_new( + f"echo benchkit_echo_test {str(args)}", print_command=True, **args + ) + expeced_result = re.sub(r"\'", "", f"benchkit_echo_test {str(args)}") + self.assertEqual( + a, + f"{expeced_result}\n", + "shell does not provide the right output in the result", + ) + + # @unittest.skip("disabled for debugging") + def test_run_forever(self): + """Test to make sure that commands do not exit prematurely""" + argument_list = get_arguments_dict_list( + { + "redirect_stderr_to_stdout": [True, False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None, {"test": "test"}], + "timeout": [None, 20], + "ignore_ret_codes": [(), (1,)], + } + ) + for args in argument_list: + with self.assertRaises(TestTimeout): + with timeout(5): + shell_out_new(script_path_string("runForever"), **args) + + # @unittest.skip("disabled for debugging") + def test_timeout(self): + """testing the timeout argument""" + argument_list = get_arguments_dict_list( + { + "redirect_stderr_to_stdout": [True, False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None, {"test": "test"}], + "ignore_ret_codes": [(), (1,)], + "timeout": [1, 2], # tested argument + } + ) + # making sure that a program times out due to the argument + for args in argument_list: + with timeout(5): + with self.assertRaises(subprocess.TimeoutExpired): + shell_out_new(script_path_string("runForever"), **args) + + argument_list = get_arguments_dict_list( + { + "redirect_stderr_to_stdout": [True, False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None, {"test": "test"}], + "ignore_ret_codes": [(), (1,)], + "timeout": [6], # tested argument + } + ) + + # making sure that it does not time out before the given timeout + for args in argument_list: + with self.assertRaises(TestTimeout): + with timeout(5): + shell_out_new(script_path_string("runForever"), **args) + + # @unittest.skip("disabled for debugging") + def test_input(self): + """testing the use of the std_input parameter""" + argument_list = get_arguments_dict_list( + { + "redirect_stderr_to_stdout": [True, False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None, {"test": "test"}], + "ignore_ret_codes": [(), (1,)], + } + ) + + for args in argument_list: + with timeout(10): + out = shell_out_new( + script_path_string("writeBack"), + std_input=f"benchkit input test {str(args)}\n", + **args, + ) + self.assertEqual(out, f"benchkit input test {str(args)}\n", f"recieved{out}") + + # @unittest.skip("disabled for debugging") + def test_command_blocks_io_overfull(self): + """Overfull internal IO buffers would halt the execution of the command + Here we test whether or not this happens in our implementation + """ + argument_list = get_arguments_dict_list( + { + "redirect_stderr_to_stdout": [True, False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None, {"test": "test"}], + "timeout": [None, 20], + "ignore_ret_codes": [(), (1,)], + } + ) + + for args in argument_list: + try: + with timeout(20): + # tests for filling the std_err + shell_out_new(script_path_string("fillErrThenOut"), **args) + except TestTimeout: + self.fail( + f"the command got halted during excecution for \ + {script_path_string('fillErrThenOut')} with args: {args}" + ) + raise TestTimeout + + try: + with timeout(20): + # tests for filling the std_io + shell_out_new(script_path_string("fillOutThenErr"), **args) + except TestTimeout: + self.fail("the command got halted during excecution") + raise TestTimeout + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/ast-shell/ast_shell.py b/tests/ast-shell/shell_tests/other_tests.py similarity index 68% rename from tests/ast-shell/ast_shell.py rename to tests/ast-shell/shell_tests/other_tests.py index accdc2d7..1653e02b 100644 --- a/tests/ast-shell/ast_shell.py +++ b/tests/ast-shell/shell_tests/other_tests.py @@ -4,6 +4,8 @@ import shlex import subprocess +from shell_scripts import script_path_string + from benchkit.shell.ast_shell_out import shell_out_new from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.variable_node import RuntimeVariable @@ -97,50 +99,32 @@ def runtest(): print(str(output.decode("utf-8"))) -def test(): - - # THE TWO EXAMPLES BELOW DONT HALT - # They exist to show that functions work in an intuative manner. - - a = shell_out_new( - "/home/aaron/benchkitFork/benchkit/tests/ast-shell/waitThenPrint.sh", print_output=True, output_is_log=True, redirect_stderr_to_stdout=False,run_in_background=True - ) - print(f"test{a} -------------------------------------------------------------") - a = shell_out_new( - "ls", print_output=True, output_is_log=True, redirect_stderr_to_stdout=False, - ) - - print("--------------------") - print(a) - - # To show that output is log works - # a = shell_out_new( - # "cat /dev/random", print_output=True, output_is_log=True - # ) - # print("--------------------") - # print(a) - # To show that input works - # shell_out_new( - # "ssh user@host -p 22 'cat'", output_is_log=True, std_input="wafel\n" \ - # "aeu aeu\n" - # ) - - - # a = shell_out_new( - # "ssh user@host -p 22 'perf stat sleep 1'", print_output=True, output_is_log=True,redirect_stderr_to_stdout=False +def testhalt(): + # shell_process = subprocess.Popen( + # # why exec: + # # we want to be able to use shell=True + # # however this would make the shell the pid of the subprocess + # # by using exec we can get make the command take over the pid of the shell + # # this only works for POSIX + # f"./shell_scripts/fillErrThenPrint.sh", + # # shell=True, + # stdout=sys.stdout, + # stderr=sys.stderr, + # stdin=subprocess.PIPE, # ) - # print("--------------------") - # print(a) - # shell_out_new(["ssh", "user@host", "-p", "57429", "-t", "perf stat sleep 1"]) - # main_command_ast = makecommand.command("sleep", ["1"]) - # full_command = makecommand.command("perf stat", [inline(main_command_ast)]) - # remote_command = execute_on_remote(full_command, "user@host", port=57429) - # shell_out_new(remote_command) + # shell_process.wait() + args = { + "print_output": True, + "output_is_log": True, + "redirect_stderr_to_stdout": False, + "current_dir": None, + "environment": None, + "timeout": None, + "ignore_ret_codes": (), + } + shell_out_new(script_path_string("fillErrThenOut"), **args) + print("yeet") if __name__ == "__main__": - # commandtests() - # localtests() - # newtest() - # runtest() - test() + testhalt() diff --git a/tests/ast-shell/shell_tests/shell_scripts.py b/tests/ast-shell/shell_tests/shell_scripts.py new file mode 100644 index 00000000..3af4751f --- /dev/null +++ b/tests/ast-shell/shell_tests/shell_scripts.py @@ -0,0 +1,33 @@ +# Copyright (C) 2025 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + +import pathlib +import signal + + +class TestTimeout(Exception): + pass + + +class timeout: + def __init__(self, seconds, error_message=None): + if error_message is None: + error_message = "test timed out after {}s.".format(seconds) + self.seconds = seconds + self.error_message = error_message + + def handle_timeout(self, signum, frame): + raise TestTimeout(self.error_message) + + def __enter__(self): + signal.signal(signal.SIGALRM, self.handle_timeout) + signal.alarm(self.seconds) + + def __exit__(self, exc_type, exc_val, exc_tb): + signal.alarm(0) + + +def script_path_string(script_name: str): + folder = pathlib.Path(__file__).parent.resolve() + print(folder) + return str(folder / f"./shell_scripts/{script_name}.sh") diff --git a/tests/ast-shell/shell_tests/shell_scripts/fillErrThenOut.sh b/tests/ast-shell/shell_tests/shell_scripts/fillErrThenOut.sh new file mode 100755 index 00000000..69646dc3 --- /dev/null +++ b/tests/ast-shell/shell_tests/shell_scripts/fillErrThenOut.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +x=1 + +while [ $x -le 3000 ]; +do + echo "std_out spam - $x - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." 1>&2; + (( x++ )) +done +echo "finished" \ No newline at end of file diff --git a/tests/ast-shell/shell_tests/shell_scripts/fillOutThenErr.sh b/tests/ast-shell/shell_tests/shell_scripts/fillOutThenErr.sh new file mode 100755 index 00000000..a995bb88 --- /dev/null +++ b/tests/ast-shell/shell_tests/shell_scripts/fillOutThenErr.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +x=1 + +while [ $x -le 3000 ]; +do + echo "std_out spam - $x - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."; + (( x++ )) +done +echo "finished" 1>&2 \ No newline at end of file diff --git a/tests/ast-shell/shell_tests/shell_scripts/runForever.sh b/tests/ast-shell/shell_tests/shell_scripts/runForever.sh new file mode 100755 index 00000000..34db0e03 --- /dev/null +++ b/tests/ast-shell/shell_tests/shell_scripts/runForever.sh @@ -0,0 +1 @@ +while true ; do date -Ins;sleep 1; done \ No newline at end of file diff --git a/tests/ast-shell/waitThenPrint.sh b/tests/ast-shell/shell_tests/shell_scripts/waitThenPrint.sh similarity index 100% rename from tests/ast-shell/waitThenPrint.sh rename to tests/ast-shell/shell_tests/shell_scripts/waitThenPrint.sh diff --git a/tests/ast-shell/shell_tests/shell_scripts/writeBack.sh b/tests/ast-shell/shell_tests/shell_scripts/writeBack.sh new file mode 100755 index 00000000..e4858341 --- /dev/null +++ b/tests/ast-shell/shell_tests/shell_scripts/writeBack.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +read -s -p "" input + +echo "$input" \ No newline at end of file From 353ded140fbab4c5532937b8855ac99c1383fda2 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Fri, 30 May 2025 10:21:51 +0200 Subject: [PATCH 23/71] improve on the complaints given by python linter --- .../CommunicationLayer/comunication_handle.py | 3 +- benchkit/shell/ast_shell_out.py | 112 +++++++++--------- 2 files changed, 58 insertions(+), 57 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/comunication_handle.py b/benchkit/shell/CommunicationLayer/comunication_handle.py index 1fdd3f57..298b75fb 100644 --- a/benchkit/shell/CommunicationLayer/comunication_handle.py +++ b/benchkit/shell/CommunicationLayer/comunication_handle.py @@ -4,6 +4,7 @@ import os from abc import ABC, abstractmethod from io import BufferedReader +from typing import IO class Output(ABC): @@ -64,7 +65,7 @@ def readErr_line(self) -> bytes: class SshOutput(Output): - def __init__(self, out: BufferedReader | None, err: BufferedReader | None): + def __init__(self, out: IO[bytes] | None, err: IO[bytes] | None): self.__out = out self.__err = err super().__init__() diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 80ba8d05..49367ede 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -13,26 +13,50 @@ from benchkit.shell.CommunicationLayer.comunication_handle import Output, SshOutput from benchkit.shell.CommunicationLayer.hook import OutputBuffer, ReaderHook, VoidOutput +def convert_command_to_ast(command:str | List[str] | CommandNode) -> CommandNode: + if isinstance(command, str): + command_tree = makecommand.command(command) + elif isinstance(command, list): + command_tree = makecommand.command(shlex.join(command)) + elif isinstance(command, CommandNode): + command_tree = command + else: + raise TypeError( + f"Shell out was called with a command of type {type(command)}," + "this is unexpected and not suported" + ) + return command_tree + +def try_conventing_bystring_to_readable_characters(bytestring: bytes) -> str | bytes: + try: + return bytestring.decode("utf-8") + except UnicodeDecodeError: + return bytestring + + def shell_out_new( command: str | List[str] | CommandNode, - std_input: str | None = None, - redirect_stderr_to_stdout: bool = True, # New feature + std_input: Optional[str] = None, current_dir: Optional[pathlib.Path | os.PathLike | str] = None, - environment: None | Dict[str, str] = None, - # shell: bool = False, Support REMOVED - print_command: bool = True, # TEMPORARALY not suported + environment: Optional[Dict[str, str]] = None, print_output: bool = False, + timeout: Optional[int] = None, + output_is_log: bool = False, + ignore_ret_codes: Optional[Iterable[int]] | None = None, + success_value = 0, # New feature + redirect_stderr_to_stdout: bool = True, # New feature + run_in_background=False, # New feature + + # Some of the visual printing concepts do not make much sence at the moment so they are not supported. + # Will probably swap over to a file based logging system for these larger amounts of additionaly information + print_env: bool = True, # TEMPORARALY not suported print_curdir: bool = True, # TEMPORARALY not suported print_shell_cmd: bool = False, # TEMPORARALY not suported print_file_shell_cmd: bool = True, # TEMPORARALY not suported - timeout: Optional[int] = None, - output_is_log: bool = False, - ignore_ret_codes: Iterable[int] = (), - run_in_background=False, - # split_arguments: bool = True, Support REMOVED -> can be achieved in another manner -) -> str: + print_command: bool = True, # TEMPORARALY not suported +) -> bytes: """ Run a shell command on the host system. @@ -97,59 +121,37 @@ def shell_out_new( Returns: str: the output of the shell command that completed successfully. """ - - # this will run the true command confirming the exit code instead of assuming it - completedProcess = subprocess.run(["true"], timeout=None) - sucsess_value = completedProcess.returncode - - def sucsess(value): - return value == sucsess_value + if ignore_ret_codes is None: + ignore_ret_codes = (success_value,) # Convert the existing structures over to the tree structure - commandTree: CommandNode - if isinstance(command, str): - commandTree = makecommand.command(command) - elif isinstance(command, list): - commandTree = makecommand.command(shlex.join(command)) - elif isinstance(command, CommandNode): - commandTree = command - else: - raise TypeError( - f"Shell out was called with a command of type {type(command)}," - "this is unexpected and not suported" - ) + command_tree: CommandNode = convert_command_to_ast(command=command) # Use the visitor patterns to convert our tree to an executable string - stringCommand = getString(commandTree) - - def try_conventing_bystring_to_readable_characters(bytestring: bytes) -> str | bytes: - try: - return bytestring.decode("utf-8") - except Exception: - return bytestring + command_string = getString(command_tree) if redirect_stderr_to_stdout: stderr_out = subprocess.STDOUT else: stderr_out = subprocess.PIPE - def logger_hook_out(input: Output): - a = input.readOut_line() + def logger_hook_out(input_object: Output): + a = input_object.readOut_line() while a: print( - f"\33[34m[OUT | {stringCommand}] \ - {try_conventing_bystring_to_readable_characters(a)}\033[0m" + f"\33[34m[OUT | {command_string}] \ + {try_conventing_bystring_to_readable_characters(a)!r}\033[0m" ) - a = input.readOut_line() + a = input_object.readOut_line() - def logger_hook_err(input: Output): - a = input.readErr_line() + def logger_hook_err(input_object: Output): + a = input_object.readErr_line() while a: print( - f"\033[91m[ERR | {stringCommand}] \ - {try_conventing_bystring_to_readable_characters(a)}\033[0m" + f"\033[91m[ERR | {command_string}] \ + {try_conventing_bystring_to_readable_characters(a)!r}\033[0m" ) - a = input.readErr_line() + a = input_object.readErr_line() log_std_out_hook = ReaderHook(logger_hook_out, voidStdErr=True) log_std_err_hook = ReaderHook(logger_hook_err, voidStdOut=True) @@ -159,8 +161,8 @@ def logger_hook_err(input: Output): # we want to be able to use shell=True # however this would make the shell the pid of the subprocess # by using exec we can get make the command take over the pid of the shell - # this only works for POSIX - f"exec {stringCommand}", + # this only works for POSIX (fixable for non posix by finding child) + f"exec {command_string}", shell=True, cwd=current_dir, env=environment, @@ -168,7 +170,7 @@ def logger_hook_err(input: Output): stderr=stderr_out, stdin=subprocess.PIPE, ) - print(shell_process.pid) + try: if shell_process.stdin is not None and std_input is not None: shell_process.stdin.write(std_input.encode("utf-8")) @@ -189,11 +191,11 @@ def logger_hook_err(input: Output): VoidOutput(command_output) # TODO: run_in_background makes it incompatible with timeout, this is fixable # shell_process.wait(timeout=timeout) - return "" + return b'' else: buffer = OutputBuffer(command_output) retcode = shell_process.wait(timeout=timeout) - output = try_conventing_bystring_to_readable_characters(buffer.get_result()) + output = buffer.get_result() except subprocess.TimeoutExpired as err: # killing this will send eof to and end the hooks aswell @@ -207,7 +209,7 @@ def logger_hook_err(input: Output): # not a sucsessfull execution and not an alowed exit code # raise the appropriate error - if not sucsess(retcode) and retcode not in ignore_ret_codes: + if retcode not in ignore_ret_codes: raise subprocess.CalledProcessError( retcode, shell_process.args, @@ -218,9 +220,8 @@ def logger_hook_err(input: Output): print("[OUT]") print(output.strip()) - # assert isinstance(output, str) return output - except Exception as e: + finally: # If something goes wrong we try to clean up after ourself # This can happen for example if we recieve a signal while waiting on an output try: @@ -233,4 +234,3 @@ def logger_hook_err(input: Output): # Wait allows the Popen process to cleanly terminate ret = shell_process.wait(1) print(f"ret:{ret}") - raise e From d63f346eec292f9796ea1b20cb3234b0f8c0c01a Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Fri, 30 May 2025 11:34:41 +0200 Subject: [PATCH 24/71] fix a bug where readline would apear empty and did not follow convention Signed-off-by: Bogaert Aaron --- benchkit/shell/CommunicationLayer/comunication_handle.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/comunication_handle.py b/benchkit/shell/CommunicationLayer/comunication_handle.py index 298b75fb..a3de06eb 100644 --- a/benchkit/shell/CommunicationLayer/comunication_handle.py +++ b/benchkit/shell/CommunicationLayer/comunication_handle.py @@ -46,20 +46,20 @@ def readErr(self, amount_of_bytes: int) -> bytes: def readOut_line(self) -> bytes: byt = self.readOut(10) while byt: - sp = byt.split(b"\n") + sp = byt.split(b"\n", 1) if len(sp) > 1: self.__bufferd_out = sp[1] - return sp[0] + return sp[0] + b'\n' byt += self.readOut(10) return byt def readErr_line(self) -> bytes: byt = self.readErr(10) while byt: - sp = byt.split(b"\n") + sp = byt.split(b"\n", 1) if len(sp) > 1: self.__bufferd_err = sp[1] - return sp[0] + return sp[0] + b'\n' byt += self.readErr(10) return byt From 8a8b83354e895a54897f82f610a0ce5bcdb595d6 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Fri, 30 May 2025 12:40:53 +0200 Subject: [PATCH 25/71] add the functionality to change the shell implementation to the new one Signed-off-by: Bogaert Aaron --- benchkit/shell/ast_shell_out.py | 16 ++++----- benchkit/shell/shell.py | 17 +++++++++ tests/ast-shell/shell_tests/ast_shell.py | 22 ++++++------ tests/ast-shell/shell_tests/other_tests.py | 40 ++++++++++++++++------ 4 files changed, 66 insertions(+), 29 deletions(-) diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 49367ede..5be58940 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -27,7 +27,7 @@ def convert_command_to_ast(command:str | List[str] | CommandNode) -> CommandNode ) return command_tree -def try_conventing_bystring_to_readable_characters(bytestring: bytes) -> str | bytes: +def try_converting_bystring_to_readable_characters(bytestring: bytes) -> str | bytes: try: return bytestring.decode("utf-8") except UnicodeDecodeError: @@ -36,7 +36,7 @@ def try_conventing_bystring_to_readable_characters(bytestring: bytes) -> str | b def shell_out_new( - command: str | List[str] | CommandNode, + command_tree: CommandNode, std_input: Optional[str] = None, current_dir: Optional[pathlib.Path | os.PathLike | str] = None, environment: Optional[Dict[str, str]] = None, @@ -44,7 +44,7 @@ def shell_out_new( timeout: Optional[int] = None, output_is_log: bool = False, ignore_ret_codes: Optional[Iterable[int]] | None = None, - success_value = 0, # New feature + success_value:int = 0, # New feature redirect_stderr_to_stdout: bool = True, # New feature run_in_background=False, # New feature @@ -123,9 +123,8 @@ def shell_out_new( """ if ignore_ret_codes is None: ignore_ret_codes = (success_value,) - - # Convert the existing structures over to the tree structure - command_tree: CommandNode = convert_command_to_ast(command=command) + else: + ignore_ret_codes += (success_value,) # Use the visitor patterns to convert our tree to an executable string command_string = getString(command_tree) @@ -140,7 +139,7 @@ def logger_hook_out(input_object: Output): while a: print( f"\33[34m[OUT | {command_string}] \ - {try_conventing_bystring_to_readable_characters(a)!r}\033[0m" + {try_converting_bystring_to_readable_characters(a)!r}\033[0m" ) a = input_object.readOut_line() @@ -149,7 +148,7 @@ def logger_hook_err(input_object: Output): while a: print( f"\033[91m[ERR | {command_string}] \ - {try_conventing_bystring_to_readable_characters(a)!r}\033[0m" + {try_converting_bystring_to_readable_characters(a)!r}\033[0m" ) a = input_object.readErr_line() @@ -210,6 +209,7 @@ def logger_hook_err(input_object: Output): # not a sucsessfull execution and not an alowed exit code # raise the appropriate error if retcode not in ignore_ret_codes: + print(ignore_ret_codes) raise subprocess.CalledProcessError( retcode, shell_process.args, diff --git a/benchkit/shell/shell.py b/benchkit/shell/shell.py index 468ffa29..94430434 100644 --- a/benchkit/shell/shell.py +++ b/benchkit/shell/shell.py @@ -8,10 +8,14 @@ import sys from typing import Iterable, Optional +from benchkit.shell.ast_shell_out import convert_command_to_ast, shell_out_new, try_converting_bystring_to_readable_characters from benchkit.shell.utils import get_args, print_header from benchkit.utils.types import Command, Environment, PathType +USE_NEW_SHELL = True + + def pipe_shell_out( command: Command, current_dir: Optional[PathType] = None, @@ -143,6 +147,19 @@ def shell_out( Returns: str: the output of the shell command that completed successfully. """ + if USE_NEW_SHELL: + output_bytes = shell_out_new( + convert_command_to_ast(command), + std_input=std_input, + current_dir=current_dir, + environment=environment, + print_output=print_output, + timeout=timeout, + output_is_log=output_is_log, + ignore_ret_codes= ignore_ret_codes if ignore_ret_codes is not () else None + ) + return try_converting_bystring_to_readable_characters(output_bytes) + arguments = get_args(command) print_header( arguments=arguments, diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py index a44f62ec..06a9be86 100644 --- a/tests/ast-shell/shell_tests/ast_shell.py +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -10,7 +10,7 @@ from shell_scripts import TestTimeout, script_path_string, timeout -from benchkit.shell.ast_shell_out import shell_out_new +from benchkit.shell.ast_shell_out import convert_command_to_ast, shell_out_new, try_converting_bystring_to_readable_characters # Due to print statements being inside of threads unittest does # not allow us to check the output of stdout. @@ -66,11 +66,13 @@ def test_echo(self): with timeout(1): # test echo with multiple parameters to make sure none mess up the result a = shell_out_new( - f"echo benchkit_echo_test {str(args)}", print_command=True, **args + convert_command_to_ast(f"echo benchkit_echo_test {str(args)}"), print_command=True, **args ) + print(a) expeced_result = re.sub(r"\'", "", f"benchkit_echo_test {str(args)}") + print(expeced_result) self.assertEqual( - a, + try_converting_bystring_to_readable_characters(a), f"{expeced_result}\n", "shell does not provide the right output in the result", ) @@ -90,7 +92,7 @@ def test_run_forever(self): for args in argument_list: with self.assertRaises(TestTimeout): with timeout(5): - shell_out_new(script_path_string("runForever"), **args) + shell_out_new(convert_command_to_ast(script_path_string("runForever")), **args) # @unittest.skip("disabled for debugging") def test_timeout(self): @@ -108,7 +110,7 @@ def test_timeout(self): for args in argument_list: with timeout(5): with self.assertRaises(subprocess.TimeoutExpired): - shell_out_new(script_path_string("runForever"), **args) + shell_out_new(convert_command_to_ast(script_path_string("runForever")), **args) argument_list = get_arguments_dict_list( { @@ -124,7 +126,7 @@ def test_timeout(self): for args in argument_list: with self.assertRaises(TestTimeout): with timeout(5): - shell_out_new(script_path_string("runForever"), **args) + shell_out_new(convert_command_to_ast(script_path_string("runForever")), **args) # @unittest.skip("disabled for debugging") def test_input(self): @@ -141,11 +143,11 @@ def test_input(self): for args in argument_list: with timeout(10): out = shell_out_new( - script_path_string("writeBack"), + convert_command_to_ast(script_path_string("writeBack")), std_input=f"benchkit input test {str(args)}\n", **args, ) - self.assertEqual(out, f"benchkit input test {str(args)}\n", f"recieved{out}") + self.assertEqual(try_converting_bystring_to_readable_characters(out), f"benchkit input test {str(args)}\n", f"recieved{out}") # @unittest.skip("disabled for debugging") def test_command_blocks_io_overfull(self): @@ -166,7 +168,7 @@ def test_command_blocks_io_overfull(self): try: with timeout(20): # tests for filling the std_err - shell_out_new(script_path_string("fillErrThenOut"), **args) + shell_out_new(convert_command_to_ast(script_path_string("fillErrThenOut")), **args) except TestTimeout: self.fail( f"the command got halted during excecution for \ @@ -177,7 +179,7 @@ def test_command_blocks_io_overfull(self): try: with timeout(20): # tests for filling the std_io - shell_out_new(script_path_string("fillOutThenErr"), **args) + shell_out_new(convert_command_to_ast(script_path_string("fillOutThenErr")), **args) except TestTimeout: self.fail("the command got halted during excecution") raise TestTimeout diff --git a/tests/ast-shell/shell_tests/other_tests.py b/tests/ast-shell/shell_tests/other_tests.py index 1653e02b..6514e525 100644 --- a/tests/ast-shell/shell_tests/other_tests.py +++ b/tests/ast-shell/shell_tests/other_tests.py @@ -4,6 +4,7 @@ import shlex import subprocess +from benchkit.shell.shell import shell_out from shell_scripts import script_path_string from benchkit.shell.ast_shell_out import shell_out_new @@ -113,17 +114,34 @@ def testhalt(): # stdin=subprocess.PIPE, # ) # shell_process.wait() - args = { - "print_output": True, - "output_is_log": True, - "redirect_stderr_to_stdout": False, - "current_dir": None, - "environment": None, - "timeout": None, - "ignore_ret_codes": (), - } - shell_out_new(script_path_string("fillErrThenOut"), **args) - print("yeet") + # args = { + # "print_output": True, + # "output_is_log": True, + # "redirect_stderr_to_stdout": False, + # "current_dir": None, + # "environment": None, + # "timeout": None, + # "ignore_ret_codes": (), + # } + # shell_out_new(script_path_string("fillErrThenOut"), **args) + # print("yeet") + + # test for the newlines + raw_output = shell_out( + command=f"cat", + std_input="a \n\n b \n c\n", + print_input=False, + print_output=False, + ) + + + # test for command that does not fully output in deafault terminal + raw_output = shell_out( + command=f"/usr/bin/perf list --no-desc", + print_input=False, + print_output=False, + ) + return raw_output if __name__ == "__main__": From aeec29f2dcb584cceb9a4bdda45802d887dc6c6c Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Fri, 30 May 2025 13:57:50 +0200 Subject: [PATCH 26/71] added a test for the return codes Signed-off-by: Bogaert Aaron --- tests/ast-shell/shell_tests/ast_shell.py | 83 +++++++++++++++++++ .../shell_scripts/returnExitCode.sh | 7 ++ 2 files changed, 90 insertions(+) create mode 100755 tests/ast-shell/shell_tests/shell_scripts/returnExitCode.sh diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py index 06a9be86..39749a20 100644 --- a/tests/ast-shell/shell_tests/ast_shell.py +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -184,6 +184,89 @@ def test_command_blocks_io_overfull(self): self.fail("the command got halted during excecution") raise TestTimeout + # @unittest.skip("disabled for debugging") + def test_ignore_return_codes(self): + """Overfull internal IO buffers would halt the execution of the command + Here we test whether or not this happens in our implementation + """ + + # test that success value does not throw an error regardles of ignore ret_codes + argument_list = get_arguments_dict_list( + { + "redirect_stderr_to_stdout": [True, False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None, {"test": "test"}], + "timeout": [None, 20], + "ignore_ret_codes": [(), (1,4,), (2,7,), (4,5,), (63,), (0,)], + "success_value": [1,6,53,19] + } + ) + + for args in argument_list: + try: + with timeout(20): + # tests for filling the std_err + retcode_to_output = args["success_value"] + shell_out_new(convert_command_to_ast(script_path_string("returnExitCode")), **args,std_input=f'{retcode_to_output}\n') + except TestTimeout: + self.fail( + f"the command got halted during excecution for \ + {script_path_string('fillErrThenOut')} with args: {args}" + ) + raise TestTimeout + + # test that error codes in ignore list do not throw error + argument_list = get_arguments_dict_list( + { + "redirect_stderr_to_stdout": [True, False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None, {"test": "test"}], + "timeout": [None, 20], + "ignore_ret_codes": [(), (1,4,), (2,7,), (4,5,), (63,), (0,)], + "output_is_log":[True] + } + ) + + for args in argument_list: + try: + with timeout(20): + retcode_to_output = args["ignore_ret_codes"][len(args["ignore_ret_codes"])-1%3] if len(args["ignore_ret_codes"]) > 0 else 0 + shell_out_new(convert_command_to_ast(script_path_string("returnExitCode")), **args,std_input=f'{retcode_to_output}\n') + except TestTimeout: + self.fail( + f"the command got halted during excecution for \ + {script_path_string('fillErrThenOut')} with args: {args}" + ) + raise TestTimeout + + #test that error code still throws an error + argument_list = get_arguments_dict_list( + { + "redirect_stderr_to_stdout": [True, False], + "current_dir": [None, pathlib.Path(__file__).parent.resolve()], + "environment": [None, {"test": "test"}], + "timeout": [None, 20], + "ignore_ret_codes": [(), (1,4,), (2,7,), (4,5,), (63,), (0,)], + "success_value": [0,1,6,53,19] + } + ) + + for args in argument_list: + try: + with self.assertRaises(subprocess.CalledProcessError): + with timeout(20): + # tests for filling the std_err + retcode_to_output = 3 + args["success_value"] + (args["ignore_ret_codes"][len(args["ignore_ret_codes"])-1%3] if len(args["ignore_ret_codes"]) > 0 else args["success_value"]) + print("----------------------") + print(retcode_to_output) + shell_out_new(convert_command_to_ast(script_path_string("returnExitCode")), **args,std_input=f'{retcode_to_output}\n') + except TestTimeout: + self.fail( + f"the command got halted during excecution for \ + {script_path_string('fillErrThenOut')} with args: {args}" + ) + raise TestTimeout + if __name__ == "__main__": unittest.main() diff --git a/tests/ast-shell/shell_tests/shell_scripts/returnExitCode.sh b/tests/ast-shell/shell_tests/shell_scripts/returnExitCode.sh new file mode 100755 index 00000000..e53195ed --- /dev/null +++ b/tests/ast-shell/shell_tests/shell_scripts/returnExitCode.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +read -s -p "" input + +echo "$input" + +exit $input \ No newline at end of file From 26c345852d8bd0ecb82c7cb6580a2eaf6c39f469 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Fri, 30 May 2025 14:21:56 +0200 Subject: [PATCH 27/71] clean up code, remove useless print and make it conform to the checker --- .../CommunicationLayer/comunication_handle.py | 6 +- benchkit/shell/CommunicationLayer/hook.py | 2 - benchkit/shell/ast_shell_out.py | 22 ++-- benchkit/shell/shell.py | 10 +- tests/ast-shell/shell_tests/ast_shell.py | 120 +++++++++++++++--- tests/ast-shell/shell_tests/other_tests.py | 10 +- 6 files changed, 125 insertions(+), 45 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/comunication_handle.py b/benchkit/shell/CommunicationLayer/comunication_handle.py index a3de06eb..5b503a0a 100644 --- a/benchkit/shell/CommunicationLayer/comunication_handle.py +++ b/benchkit/shell/CommunicationLayer/comunication_handle.py @@ -3,7 +3,6 @@ import os from abc import ABC, abstractmethod -from io import BufferedReader from typing import IO @@ -32,7 +31,6 @@ def readOut(self, amount_of_bytes: int) -> bytes: self.a = 0 return ret self.a += 1 - # print(f'come from buffer non {self.a}') return self._read_bytes_out(amount_of_bytes) def readErr(self, amount_of_bytes: int) -> bytes: @@ -49,7 +47,7 @@ def readOut_line(self) -> bytes: sp = byt.split(b"\n", 1) if len(sp) > 1: self.__bufferd_out = sp[1] - return sp[0] + b'\n' + return sp[0] + b"\n" byt += self.readOut(10) return byt @@ -59,7 +57,7 @@ def readErr_line(self) -> bytes: sp = byt.split(b"\n", 1) if len(sp) > 1: self.__bufferd_err = sp[1] - return sp[0] + b'\n' + return sp[0] + b"\n" byt += self.readErr(10) return byt diff --git a/benchkit/shell/CommunicationLayer/hook.py b/benchkit/shell/CommunicationLayer/hook.py index e1b4482d..308e0927 100644 --- a/benchkit/shell/CommunicationLayer/hook.py +++ b/benchkit/shell/CommunicationLayer/hook.py @@ -45,14 +45,12 @@ def result_thread(out: Output, output_queue: Queue[bytes]) -> None: outlines += outline outline = out.readOut(10) output_queue.put(outlines) - print("res ends") @staticmethod def void_err(out: Output) -> None: outline = out.readErr(10) while outline: outline = out.readErr(10) - print("err ends") def get_result(self) -> bytes: output = self.queue_out.get() diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index d67847ec..a3e6a6ce 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -13,7 +13,8 @@ from benchkit.shell.CommunicationLayer.comunication_handle import Output, SshOutput from benchkit.shell.CommunicationLayer.hook import OutputBuffer, ReaderHook, VoidOutput -def convert_command_to_ast(command:str | List[str] | CommandNode) -> CommandNode: + +def convert_command_to_ast(command: str | List[str] | CommandNode) -> CommandNode: if isinstance(command, str): command_tree = makecommand.command(command) elif isinstance(command, list): @@ -27,6 +28,7 @@ def convert_command_to_ast(command:str | List[str] | CommandNode) -> CommandNode ) return command_tree + def try_converting_bystring_to_readable_characters(bytestring: bytes) -> str | bytes: try: return bytestring.decode("utf-8") @@ -34,7 +36,6 @@ def try_converting_bystring_to_readable_characters(bytestring: bytes) -> str | b return bytestring - def shell_out_new( command_tree: CommandNode, std_input: Optional[str] = None, @@ -43,14 +44,13 @@ def shell_out_new( print_output: bool = False, timeout: Optional[int] = None, output_is_log: bool = False, - ignore_ret_codes: Optional[Iterable[int]] | None = None, - success_value:int = 0, # New feature + ignore_ret_codes: Optional[Iterable[int]] = None, + success_value: int = 0, # New feature redirect_stderr_to_stdout: bool = True, # New feature - run_in_background=False, # New feature - - # Some of the visual printing concepts do not make much sence at the moment so they are not supported. - # Will probably swap over to a file based logging system for these larger amounts of additionaly information - + run_in_background=False, # New feature + # Some of the visual printing are not supported. + # Will probably swap over to a file based logging + # system for these larger amounts of additionaly information print_env: bool = True, # TEMPORARALY not suported print_curdir: bool = True, # TEMPORARALY not suported print_shell_cmd: bool = False, # TEMPORARALY not suported @@ -192,7 +192,7 @@ def logger_hook_err(input_object: Output): VoidOutput(command_output) # TODO: run_in_background makes it incompatible with timeout, this is fixable # shell_process.wait(timeout=timeout) - return b'' + return b"" else: buffer = OutputBuffer(command_output) retcode = shell_process.wait(timeout=timeout) @@ -212,7 +212,6 @@ def logger_hook_err(input_object: Output): # not a sucsessfull execution and not an alowed exit code # raise the appropriate error if retcode not in ignore_ret_codes: - print(ignore_ret_codes) raise subprocess.CalledProcessError( retcode, shell_process.args, @@ -236,4 +235,3 @@ def logger_hook_err(input_object: Output): shell_process.terminate() # Wait allows the Popen process to cleanly terminate ret = shell_process.wait(1) - print(f"ret:{ret}") diff --git a/benchkit/shell/shell.py b/benchkit/shell/shell.py index 94430434..12a7be4a 100644 --- a/benchkit/shell/shell.py +++ b/benchkit/shell/shell.py @@ -8,11 +8,14 @@ import sys from typing import Iterable, Optional -from benchkit.shell.ast_shell_out import convert_command_to_ast, shell_out_new, try_converting_bystring_to_readable_characters +from benchkit.shell.ast_shell_out import ( + convert_command_to_ast, + shell_out_new, + try_converting_bystring_to_readable_characters, +) from benchkit.shell.utils import get_args, print_header from benchkit.utils.types import Command, Environment, PathType - USE_NEW_SHELL = True @@ -156,7 +159,8 @@ def shell_out( print_output=print_output, timeout=timeout, output_is_log=output_is_log, - ignore_ret_codes= ignore_ret_codes if ignore_ret_codes is not () else None + # If ignore_ret_codes is empty we swap it over to None instead + ignore_ret_codes=ignore_ret_codes if not any(True for _ in ignore_ret_codes) else None, ) return try_converting_bystring_to_readable_characters(output_bytes) diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py index 39749a20..2a33efe8 100644 --- a/tests/ast-shell/shell_tests/ast_shell.py +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -10,7 +10,11 @@ from shell_scripts import TestTimeout, script_path_string, timeout -from benchkit.shell.ast_shell_out import convert_command_to_ast, shell_out_new, try_converting_bystring_to_readable_characters +from benchkit.shell.ast_shell_out import ( + convert_command_to_ast, + shell_out_new, + try_converting_bystring_to_readable_characters, +) # Due to print statements being inside of threads unittest does # not allow us to check the output of stdout. @@ -66,7 +70,9 @@ def test_echo(self): with timeout(1): # test echo with multiple parameters to make sure none mess up the result a = shell_out_new( - convert_command_to_ast(f"echo benchkit_echo_test {str(args)}"), print_command=True, **args + convert_command_to_ast(f"echo benchkit_echo_test {str(args)}"), + print_command=True, + **args, ) print(a) expeced_result = re.sub(r"\'", "", f"benchkit_echo_test {str(args)}") @@ -147,7 +153,11 @@ def test_input(self): std_input=f"benchkit input test {str(args)}\n", **args, ) - self.assertEqual(try_converting_bystring_to_readable_characters(out), f"benchkit input test {str(args)}\n", f"recieved{out}") + self.assertEqual( + try_converting_bystring_to_readable_characters(out), + f"benchkit input test {str(args)}\n", + f"recieved{out}", + ) # @unittest.skip("disabled for debugging") def test_command_blocks_io_overfull(self): @@ -168,7 +178,9 @@ def test_command_blocks_io_overfull(self): try: with timeout(20): # tests for filling the std_err - shell_out_new(convert_command_to_ast(script_path_string("fillErrThenOut")), **args) + shell_out_new( + convert_command_to_ast(script_path_string("fillErrThenOut")), **args + ) except TestTimeout: self.fail( f"the command got halted during excecution for \ @@ -179,7 +191,9 @@ def test_command_blocks_io_overfull(self): try: with timeout(20): # tests for filling the std_io - shell_out_new(convert_command_to_ast(script_path_string("fillOutThenErr")), **args) + shell_out_new( + convert_command_to_ast(script_path_string("fillOutThenErr")), **args + ) except TestTimeout: self.fail("the command got halted during excecution") raise TestTimeout @@ -197,8 +211,24 @@ def test_ignore_return_codes(self): "current_dir": [None, pathlib.Path(__file__).parent.resolve()], "environment": [None, {"test": "test"}], "timeout": [None, 20], - "ignore_ret_codes": [(), (1,4,), (2,7,), (4,5,), (63,), (0,)], - "success_value": [1,6,53,19] + "ignore_ret_codes": [ + (), + ( + 1, + 4, + ), + ( + 2, + 7, + ), + ( + 4, + 5, + ), + (63,), + (0,), + ], + "success_value": [1, 6, 53, 19], } ) @@ -207,7 +237,11 @@ def test_ignore_return_codes(self): with timeout(20): # tests for filling the std_err retcode_to_output = args["success_value"] - shell_out_new(convert_command_to_ast(script_path_string("returnExitCode")), **args,std_input=f'{retcode_to_output}\n') + shell_out_new( + convert_command_to_ast(script_path_string("returnExitCode")), + **args, + std_input=f"{retcode_to_output}\n", + ) except TestTimeout: self.fail( f"the command got halted during excecution for \ @@ -222,16 +256,40 @@ def test_ignore_return_codes(self): "current_dir": [None, pathlib.Path(__file__).parent.resolve()], "environment": [None, {"test": "test"}], "timeout": [None, 20], - "ignore_ret_codes": [(), (1,4,), (2,7,), (4,5,), (63,), (0,)], - "output_is_log":[True] + "ignore_ret_codes": [ + (), + ( + 1, + 4, + ), + ( + 2, + 7, + ), + ( + 4, + 5, + ), + (63,), + (0,), + ], + "output_is_log": [True], } ) for args in argument_list: try: with timeout(20): - retcode_to_output = args["ignore_ret_codes"][len(args["ignore_ret_codes"])-1%3] if len(args["ignore_ret_codes"]) > 0 else 0 - shell_out_new(convert_command_to_ast(script_path_string("returnExitCode")), **args,std_input=f'{retcode_to_output}\n') + retcode_to_output = ( + args["ignore_ret_codes"][len(args["ignore_ret_codes"]) - 1 % 3] + if len(args["ignore_ret_codes"]) > 0 + else 0 + ) + shell_out_new( + convert_command_to_ast(script_path_string("returnExitCode")), + **args, + std_input=f"{retcode_to_output}\n", + ) except TestTimeout: self.fail( f"the command got halted during excecution for \ @@ -239,15 +297,31 @@ def test_ignore_return_codes(self): ) raise TestTimeout - #test that error code still throws an error + # test that error code still throws an error argument_list = get_arguments_dict_list( { "redirect_stderr_to_stdout": [True, False], "current_dir": [None, pathlib.Path(__file__).parent.resolve()], "environment": [None, {"test": "test"}], "timeout": [None, 20], - "ignore_ret_codes": [(), (1,4,), (2,7,), (4,5,), (63,), (0,)], - "success_value": [0,1,6,53,19] + "ignore_ret_codes": [ + (), + ( + 1, + 4, + ), + ( + 2, + 7, + ), + ( + 4, + 5, + ), + (63,), + (0,), + ], + "success_value": [0, 1, 6, 53, 19], } ) @@ -256,10 +330,22 @@ def test_ignore_return_codes(self): with self.assertRaises(subprocess.CalledProcessError): with timeout(20): # tests for filling the std_err - retcode_to_output = 3 + args["success_value"] + (args["ignore_ret_codes"][len(args["ignore_ret_codes"])-1%3] if len(args["ignore_ret_codes"]) > 0 else args["success_value"]) + retcode_to_output = ( + 3 + + args["success_value"] + + ( + args["ignore_ret_codes"][len(args["ignore_ret_codes"]) - 1 % 3] + if len(args["ignore_ret_codes"]) > 0 + else args["success_value"] + ) + ) print("----------------------") print(retcode_to_output) - shell_out_new(convert_command_to_ast(script_path_string("returnExitCode")), **args,std_input=f'{retcode_to_output}\n') + shell_out_new( + convert_command_to_ast(script_path_string("returnExitCode")), + **args, + std_input=f"{retcode_to_output}\n", + ) except TestTimeout: self.fail( f"the command got halted during excecution for \ diff --git a/tests/ast-shell/shell_tests/other_tests.py b/tests/ast-shell/shell_tests/other_tests.py index 6514e525..5ce9f2a1 100644 --- a/tests/ast-shell/shell_tests/other_tests.py +++ b/tests/ast-shell/shell_tests/other_tests.py @@ -4,10 +4,6 @@ import shlex import subprocess -from benchkit.shell.shell import shell_out -from shell_scripts import script_path_string - -from benchkit.shell.ast_shell_out import shell_out_new from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.variable_node import RuntimeVariable from benchkit.shell.commandAST.visitor import ( @@ -17,6 +13,7 @@ printAst, resolveAllVariablesWithDict, ) +from benchkit.shell.shell import shell_out def commandtests(): @@ -128,16 +125,15 @@ def testhalt(): # test for the newlines raw_output = shell_out( - command=f"cat", + command="cat", std_input="a \n\n b \n c\n", print_input=False, print_output=False, ) - # test for command that does not fully output in deafault terminal raw_output = shell_out( - command=f"/usr/bin/perf list --no-desc", + command="/usr/bin/perf list --no-desc", print_input=False, print_output=False, ) From a57cecbea41f437118ca8be4c4796463b46e9c5c Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Fri, 30 May 2025 15:08:37 +0200 Subject: [PATCH 28/71] rework the printing of commands and outputs to be more conform to the old system Signed-off-by: Bogaert Aaron --- benchkit/shell/ast_shell_out.py | 9 +++++---- benchkit/shell/shell.py | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index a3e6a6ce..12c34033 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -45,6 +45,7 @@ def shell_out_new( timeout: Optional[int] = None, output_is_log: bool = False, ignore_ret_codes: Optional[Iterable[int]] = None, + print_command_start: bool = True, # Reworked feature success_value: int = 0, # New feature redirect_stderr_to_stdout: bool = True, # New feature run_in_background=False, # New feature @@ -55,7 +56,6 @@ def shell_out_new( print_curdir: bool = True, # TEMPORARALY not suported print_shell_cmd: bool = False, # TEMPORARALY not suported print_file_shell_cmd: bool = True, # TEMPORARALY not suported - print_command: bool = True, # TEMPORARALY not suported ) -> bytes: """ Run a shell command on the host system. @@ -169,6 +169,8 @@ def logger_hook_err(input_object: Output): stderr=stderr_out, stdin=subprocess.PIPE, ) + if print_command_start: + print(f"\033[32m[START | {command_string}]\033[0m") try: if shell_process.stdin is not None and std_input is not None: @@ -218,9 +220,8 @@ def logger_hook_err(input_object: Output): ) if print_output and not output_is_log: - if "" != output.strip(): - print("[OUT]") - print(output.strip()) + print("[OUT]") + print(f"{try_converting_bystring_to_readable_characters(output)}") return output finally: diff --git a/benchkit/shell/shell.py b/benchkit/shell/shell.py index 12a7be4a..7c9569aa 100644 --- a/benchkit/shell/shell.py +++ b/benchkit/shell/shell.py @@ -159,6 +159,7 @@ def shell_out( print_output=print_output, timeout=timeout, output_is_log=output_is_log, + print_command_start=print_input, # If ignore_ret_codes is empty we swap it over to None instead ignore_ret_codes=ignore_ret_codes if not any(True for _ in ignore_ret_codes) else None, ) From fba05f6a95675ed23c907d2bb79c5403a86f6fc1 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Fri, 30 May 2025 15:49:43 +0200 Subject: [PATCH 29/71] remove leftover debugging lines Signed-off-by: Bogaert Aaron --- benchkit/shell/CommunicationLayer/comunication_handle.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/comunication_handle.py b/benchkit/shell/CommunicationLayer/comunication_handle.py index 5b503a0a..a4fc873c 100644 --- a/benchkit/shell/CommunicationLayer/comunication_handle.py +++ b/benchkit/shell/CommunicationLayer/comunication_handle.py @@ -13,7 +13,6 @@ class Output(ABC): def __init__(self): self.__bufferd_out: bytes = b"" self.__bufferd_err: bytes = b"" - self.a = 2 @abstractmethod def _read_bytes_out(self, amount_of_bytes: int) -> bytes: @@ -28,9 +27,7 @@ def readOut(self, amount_of_bytes: int) -> bytes: if self.__bufferd_out: ret = self.__bufferd_out self.__bufferd_out = b"" - self.a = 0 return ret - self.a += 1 return self._read_bytes_out(amount_of_bytes) def readErr(self, amount_of_bytes: int) -> bytes: From 5aca124816f6e08c184c3f5cdabfeb92a2b1dc69 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Mon, 2 Jun 2025 14:51:53 +0200 Subject: [PATCH 30/71] changes outputs to isolated IOStreams for performance overhead --- .../shell/CommunicationLayer/IO_stream.py | 66 +++++ .../shell/CommunicationLayer/OutputObject.py | 27 ++ .../CommunicationLayer/comunication_handle.py | 129 --------- benchkit/shell/CommunicationLayer/hook.py | 248 +++++------------- benchkit/shell/ast_shell_out.py | 84 +++--- tests/ast-shell/shell_tests/ast_shell.py | 3 - tests/ast-shell/shell_tests/other_tests.py | 52 ++-- 7 files changed, 242 insertions(+), 367 deletions(-) create mode 100644 benchkit/shell/CommunicationLayer/IO_stream.py create mode 100644 benchkit/shell/CommunicationLayer/OutputObject.py delete mode 100644 benchkit/shell/CommunicationLayer/comunication_handle.py diff --git a/benchkit/shell/CommunicationLayer/IO_stream.py b/benchkit/shell/CommunicationLayer/IO_stream.py new file mode 100644 index 00000000..95254972 --- /dev/null +++ b/benchkit/shell/CommunicationLayer/IO_stream.py @@ -0,0 +1,66 @@ +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + +import os +from abc import ABC, abstractmethod +from typing import IO + + +class IOStream(ABC): + """interface to communicate with command output on all platforms, + functions are due to compatibility""" + + def __init__(self): + self.__buffer: bytes = b"" + + @abstractmethod + def _read_bytes(self, amount_of_bytes: int) -> bytes: + pass + + def read(self, amount_of_bytes: int) -> bytes: + """reads at most amount_of_bytes from the available stdout""" + if self.__buffer: + ret = self.__buffer + self.__buffer = b"" + return ret + return self._read_bytes(amount_of_bytes) + + def read_line(self) -> bytes: + byt = self.read(10) + while byt: + sp = byt.split(b"\n", 1) + if len(sp) > 1: + self.__buffer = sp[1] + return sp[0] + b"\n" + byt += self.read(10) + return byt + + +class SshIOStream(IOStream): + def __init__(self, stream: IO[bytes] | None): + self.__stream = stream + super().__init__() + + def _read_bytes(self, amount_of_bytes: int) -> bytes: + if self.__stream: + return self.__stream.read(amount_of_bytes) + return b"" + + +class WritableIOStream(IOStream): + """A way to create a fileStream that can be used as a CommandOutput by other functions""" + + def __init__(self) -> None: + self.reader, self.writer = os.pipe() + os.set_inheritable(self.reader, True) + os.set_inheritable(self.writer, True) + super().__init__() + + def write(self, bytes_to_write: bytes) -> None: + os.write(self.writer, bytes_to_write) + + def endWriting(self) -> None: + os.close(self.writer) + + def _read_bytes(self, amount_of_bytes: int) -> bytes: + return os.read(self.reader, amount_of_bytes) diff --git a/benchkit/shell/CommunicationLayer/OutputObject.py b/benchkit/shell/CommunicationLayer/OutputObject.py new file mode 100644 index 00000000..7915c57a --- /dev/null +++ b/benchkit/shell/CommunicationLayer/OutputObject.py @@ -0,0 +1,27 @@ +# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + +from abc import ABC +from typing import IO + +from benchkit.shell.CommunicationLayer.IO_stream import IOStream, SshIOStream + + +class Output(ABC): + """interface to communicate with command output on all platforms, + functions are due to compatibility""" + + def __init__(self,std_out:IOStream|None,std_err:IOStream|None): + if std_out is None: + std_out = SshIOStream(None) + self.std_out:IOStream = std_out + if std_err is None: + std_err = SshIOStream(None) + self.std_err:IOStream = std_err + + +def sshOutput(out: IO[bytes] | None, err: IO[bytes] | None) -> Output: + return Output( + SshIOStream(out), + SshIOStream(err) + ) diff --git a/benchkit/shell/CommunicationLayer/comunication_handle.py b/benchkit/shell/CommunicationLayer/comunication_handle.py deleted file mode 100644 index a4fc873c..00000000 --- a/benchkit/shell/CommunicationLayer/comunication_handle.py +++ /dev/null @@ -1,129 +0,0 @@ -# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. -# SPDX-License-Identifier: MIT - -import os -from abc import ABC, abstractmethod -from typing import IO - - -class Output(ABC): - """interface to communicate with command output on all platforms, - functions are due to compatibility""" - - def __init__(self): - self.__bufferd_out: bytes = b"" - self.__bufferd_err: bytes = b"" - - @abstractmethod - def _read_bytes_out(self, amount_of_bytes: int) -> bytes: - pass - - @abstractmethod - def _read_bytes_err(self, amount_of_bytes: int) -> bytes: - pass - - def readOut(self, amount_of_bytes: int) -> bytes: - """reads at most amount_of_bytes from the available stdout""" - if self.__bufferd_out: - ret = self.__bufferd_out - self.__bufferd_out = b"" - return ret - return self._read_bytes_out(amount_of_bytes) - - def readErr(self, amount_of_bytes: int) -> bytes: - """reads at most amount_of_bytes from the available stderr""" - if self.__bufferd_err: - ret = self.__bufferd_err - self.__bufferd_err = b"" - return ret - return self._read_bytes_err(amount_of_bytes) - - def readOut_line(self) -> bytes: - byt = self.readOut(10) - while byt: - sp = byt.split(b"\n", 1) - if len(sp) > 1: - self.__bufferd_out = sp[1] - return sp[0] + b"\n" - byt += self.readOut(10) - return byt - - def readErr_line(self) -> bytes: - byt = self.readErr(10) - while byt: - sp = byt.split(b"\n", 1) - if len(sp) > 1: - self.__bufferd_err = sp[1] - return sp[0] + b"\n" - byt += self.readErr(10) - return byt - - -class SshOutput(Output): - def __init__(self, out: IO[bytes] | None, err: IO[bytes] | None): - self.__out = out - self.__err = err - super().__init__() - - def _read_bytes_err(self, amount_of_bytes: int) -> bytes: - if self.__err: - return self.__err.read(amount_of_bytes) - return b"" - - def _read_bytes_out(self, amount_of_bytes: int) -> bytes: - if self.__out: - return self.__out.read(amount_of_bytes) - return b"" - - -class WritableOutput(Output): - """A way to create a fileStream that can be used as a CommandOutput by other functions""" - - def __init__(self) -> None: - self.readerOut, self.writerOut = os.pipe() - self.readerErr, self.writerErr = os.pipe() - os.set_inheritable(self.readerOut, True) - os.set_inheritable(self.readerErr, True) - os.set_inheritable(self.writerOut, True) - os.set_inheritable(self.writerErr, True) - super().__init__() - - def writeOut(self, bytes_to_write: bytes) -> None: - os.write(self.writerOut, bytes_to_write) - - def writeErr(self, bytes_to_write: bytes) -> None: - os.write(self.writerErr, bytes_to_write) - - def endWritingOut(self) -> None: - os.close(self.writerOut) - - def endWritingErr(self) -> None: - os.close(self.writerErr) - - def _read_bytes_out(self, amount_of_bytes: int) -> bytes: - return os.read(self.readerOut, amount_of_bytes) - - def _read_bytes_err(self, amount_of_bytes: int) -> bytes: - return os.read(self.readerErr, amount_of_bytes) - - -"""File notes OUTDATED KEPT FOR REFERENCE FOR A BIT - -the read function needs verry thourough testing to make sure that all of the edge cases are the same --> is it blocking when X bytes requested and there are not X bytes available --> how does it react on reading X bytes when endof file has been reached --> how does it react when the stream has been closed -=> these need to become documented so that further implementations can follow it - -OutClosed has been removed due to there being no way to detect this without -blocking for the local intreface --> detecting if there is stil data needs to be done manualy in the hooks - -> if you recieve a b'' no further data will be readable - - - -CommandPassthrough can we fill the buffer and what happens if we do --> if hooks dont clear it fast enough what will happen --> test this - -""" diff --git a/benchkit/shell/CommunicationLayer/hook.py b/benchkit/shell/CommunicationLayer/hook.py index 308e0927..1d441d8c 100644 --- a/benchkit/shell/CommunicationLayer/hook.py +++ b/benchkit/shell/CommunicationLayer/hook.py @@ -1,208 +1,100 @@ -# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. -# SPDX-License-Identifier: MIT - from __future__ import annotations # Otherwise Queue comlains about typing from abc import ABC, abstractmethod from multiprocessing import Process, Queue -from typing import Callable +from typing import Any, Callable +from benchkit.shell.CommunicationLayer.IO_stream import IOStream, WritableIOStream +from benchkit.shell.CommunicationLayer.OutputObject import Output -from benchkit.shell.CommunicationLayer.comunication_handle import Output, WritableOutput +class IOHook(ABC): + def __init__(self): + self._output = WritableIOStream() -# change -> this should be a "result hook" -# -> Hook should be a pastrough hook -# -> Hook should have getPassthrough() removed -# This would allow for composition where every hook needs to end in a result hook -# (deafault is voiding it -> would be async) + @abstractmethod + def start_hook_function(self, input_stream: IOStream) -> None: + pass + def get_outgoing_io_stream(self) -> IOStream: + return self._output -class OutputBuffer: - def __init__(self, out: Output) -> None: - self.queue_out: Queue[bytes] = Queue() - self.out = out - logger_process_out = Process( - target=self.result_thread, - args=( - self.out, - self.queue_out, - ), - ) +class IOWriterHook(IOHook): + def __init__(self, hook_function:Callable[[IOStream,WritableIOStream],None]): + self.hook_function = hook_function + super().__init__() - err_void = Process( - target=self.void_err, - args=(self.out,), - ) + def start_hook_function(self, input_stream: IOStream) -> None: + p = Process(target=self.hook_function, args=(input_stream, self._output)) + p.start() - logger_process_out.start() - err_void.start() + #Close the file descriptor of the main thread, the one from the process will still be alive + self._output.endWriting() - @staticmethod - def result_thread(out: Output, output_queue: Queue[bytes]) -> None: - outlines: bytes = b"" - outline = out.readOut(10) - while outline: - outlines += outline - outline = out.readOut(10) - output_queue.put(outlines) +class IOReaderHook(IOHook): - @staticmethod - def void_err(out: Output) -> None: - outline = out.readErr(10) - while outline: - outline = out.readErr(10) - - def get_result(self) -> bytes: - output = self.queue_out.get() - return output - - -class VoidOutput: - def __init__(self, out: Output) -> None: - self.out = out - void_process_out = Process( - target=self.void_out, - args=(self.out,), - ) - void_process_err = Process( - target=self.void_err, - args=(self.out,), - ) - void_process_out.start() - void_process_err.start() + def __init__(self, hook_function:Callable[[IOStream],None]): + self.hook_function = hook_function + self._stream_duplicate = WritableIOStream() + super().__init__() @staticmethod - def void_out(out: Output) -> None: - outline = out.readOut(10) - while outline: - outline = out.readOut(10) - - @staticmethod - def void_err(out: Output) -> None: - outline = out.readErr(10) - while outline: - outline = out.readErr(10) + def __pas_along_original_stream(input_stream:IOStream,output1_stream:WritableIOStream,output2_stream:WritableIOStream): + while True: + data = input_stream.read(1) + if not data: + break + output1_stream.write(data) + output2_stream.write(data) + output1_stream.endWriting() + output2_stream.endWriting() -class Hook(ABC): - @abstractmethod - def startHookFunction(self, comandOutput: Output) -> None: - pass - @abstractmethod - def getPassthrough(self) -> WritableOutput: - pass + def start_hook_function(self, input_stream: IOStream) -> None: + duplication_process = Process(target=self.__pas_along_original_stream, args=(input_stream, self._output,self._stream_duplicate,)) + reader_hook_process = Process(target=self.hook_function,args=(self._stream_duplicate,)) + duplication_process.start() + #Close the file descriptor of the main thread, the one from the process will still be alive + self._output.endWriting() + self._stream_duplicate.endWriting() + reader_hook_process.start() -class WriterHook(Hook): - def __init__(self, hookFunction: Callable[[Output, WritableOutput], None]): - self.__output = WritableOutput() - self.hookFunction = hookFunction +class IOResultHook(IOHook): + def __init__(self, hook_function:Callable[[IOStream,WritableIOStream,Queue],None]): + self.__queue:Queue[Any] = Queue() + self.hook_function = hook_function + super().__init__() - def startHookFunction(self, comandOutput: Output): - p = Process(target=self.hookFunction, args=(comandOutput, self.__output)) + def start_hook_function(self, input_stream: IOStream) -> None: + p = Process(target=self.hook_function, args=(input_stream, self._output,self.__queue)) p.start() - self.__output.endWritingErr() - self.__output.endWritingOut() - def getPassthrough(self): - return self.__output + #Close the file descriptor of the main thread, the one from the process will still be alive + self._output.endWriting() + def get_result(self) -> Any: + return self.__queue.get() -class ReaderHook(Hook): - @staticmethod - def pasAlongStdOut( - input: Output, output: WritableOutput, splitof: WritableOutput, void_stdout: bool - ): - output.endWritingErr() - splitof.endWritingErr() - while True: - data = input.readOut(1) - if not data: - break - output.writeOut(data) - if not void_stdout: - splitof.writeOut(data) - output.endWritingOut() - if not void_stdout: - splitof.endWritingOut() - @staticmethod - def pasAlongStdErr( - input: Output, output: WritableOutput, splitof: WritableOutput, void_stderr: bool - ): +class OutputHook(): + def __init__(self,std_out_hook:IOHook|None,std_err_hook:IOHook|None): + self._std_out_hook = std_out_hook + self._std_err_hook = std_err_hook - output.endWritingOut() - splitof.endWritingOut() - - while True: - data = input.readErr(1) - if not data: - break - output.writeErr(data) - if not void_stderr: - splitof.writeErr(data) - output.endWritingErr() - - if not void_stderr: - splitof.endWritingErr() - - def __init__( - self, - hookFunction: Callable[[Output], None], - voidStdOut: bool = False, - voidStdErr: bool = False, - ): - self.__output = WritableOutput() - self.__splitof = WritableOutput() - self.hookfunction = hookFunction - self.__voidStdErr = voidStdErr - self.__voidStdOut = voidStdOut - - @staticmethod - def hookwrap(input: WritableOutput, hookfunction: Callable[[Output], None]): - - input.endWritingOut() - input.endWritingErr() - hookfunction(input) - - def startHookFunction(self, comandOutput: Output): - p1 = Process( - target=self.pasAlongStdOut, - args=(comandOutput, self.__output, self.__splitof, self.__voidStdOut), - ) - p2 = Process( - target=self.pasAlongStdErr, - args=(comandOutput, self.__output, self.__splitof, self.__voidStdErr), - ) - p3 = Process(target=self.hookwrap, args=(self.__splitof, self.hookfunction)) - p1.start() - p2.start() - p3.start() - self.__output.endWritingErr() - self.__output.endWritingOut() - self.__splitof.endWritingErr() - self.__splitof.endWritingOut() - - def getPassthrough(self): - return self.__output - - -""" -file notes -voiding something for the reader function can be done in a more efficient method, -we could create an empty passthrouh for the splitof part and just replace the stdOut in the __output -would need to check if this is a clean solution or more of a hack -the current implementation is consisten and 'clean' albe it with a lot of overhead - - -TODO implement the voiding of certain streams for the writer hooks -this makes it less likely people will make mistakes by ignoring streams and blocking - -TODO implement passtrough of certian streams for writer hooks -this makes it less likely people will make mistakes by ignoring streams and blocking - -""" + def attatch(self,output:Output) -> Output: + std_out = output.std_out + std_err = output.std_err + if self._std_out_hook: + self._std_out_hook.start_hook_function(output.std_out) + std_out = self._std_out_hook.get_outgoing_io_stream() + if self._std_err_hook: + self._std_err_hook.start_hook_function(output.std_err) + std_err = self._std_err_hook.get_outgoing_io_stream() + return Output( + std_out, + std_err + ) \ No newline at end of file diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 12c34033..e34cdb35 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -1,17 +1,19 @@ # Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. # SPDX-License-Identifier: MIT +from multiprocessing import Queue import os import pathlib import shlex import subprocess from typing import Dict, Iterable, List, Optional +from benchkit.shell.CommunicationLayer.IO_stream import IOStream +from benchkit.shell.CommunicationLayer.hook import IOReaderHook, IOResultHook, IOWriterHook, OutputHook from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.commandNodes import CommandNode from benchkit.shell.commandAST.visitor import getString -from benchkit.shell.CommunicationLayer.comunication_handle import Output, SshOutput -from benchkit.shell.CommunicationLayer.hook import OutputBuffer, ReaderHook, VoidOutput +from benchkit.shell.CommunicationLayer.OutputObject import sshOutput def convert_command_to_ast(command: str | List[str] | CommandNode) -> CommandNode: @@ -134,26 +136,47 @@ def shell_out_new( else: stderr_out = subprocess.PIPE - def logger_hook_out(input_object: Output): - a = input_object.readOut_line() - while a: - print( - f"\33[34m[OUT | {command_string}] \ - {try_converting_bystring_to_readable_characters(a)!r}\033[0m" - ) - a = input_object.readOut_line() - - def logger_hook_err(input_object: Output): - a = input_object.readErr_line() - while a: - print( - f"\033[91m[ERR | {command_string}] \ - {try_converting_bystring_to_readable_characters(a)!r}\033[0m" - ) - a = input_object.readErr_line() + def create_voiding_result_hook() -> IOResultHook: + def hook_function(input_object:IOStream,_,result_queue:Queue): + # we do not write to the out stream thus this is "voiding" + outlines: bytes = b"" + outline = input_object.read(10) + while outline: + outlines += outline + outline = input_object.read(10) + result_queue.put(outlines) + return IOResultHook(hook_function) + + + def create_stream_logger_hook(prefix:str) -> IOReaderHook: + def hook_function(input_object: IOStream): + a = input_object.read_line() + while a: + print( + f"{prefix} {try_converting_bystring_to_readable_characters(a)!r}\033[0m" + ) + a = input_object.read_line() + return IOReaderHook(hook_function) + + logger_hook = OutputHook( + create_stream_logger_hook("\33[34m[OUT | {command_string}"), + create_stream_logger_hook("\033[91m[ERR | {command_string}]") + ) - log_std_out_hook = ReaderHook(logger_hook_out, voidStdErr=True) - log_std_err_hook = ReaderHook(logger_hook_err, voidStdOut=True) + def void_input(input_object,_): + outline = input_object.read(10) + while outline: + outline = input_object.read(10) + + output_hook_object = create_voiding_result_hook() + + voiding_result_hook = OutputHook( + output_hook_object, + IOWriterHook(void_input)) + + voiding_hook = OutputHook( + IOWriterHook(void_input), + IOWriterHook(void_input)) shell_process = subprocess.Popen( # why exec: @@ -174,34 +197,29 @@ def logger_hook_err(input_object: Output): try: if shell_process.stdin is not None and std_input is not None: - shell_process.stdin.write(std_input.encode("utf-8")) shell_process.stdin.write(std_input.encode("utf-8")) shell_process.stdin.flush() if shell_process.stdin is not None: shell_process.stdin.close() - command_output = SshOutput(shell_process.stdout, shell_process.stderr) - command_output = SshOutput(shell_process.stdout, shell_process.stderr) + command_output = sshOutput(shell_process.stdout, shell_process.stderr) + if output_is_log: - log_std_out_hook.startHookFunction(command_output) - pas = log_std_out_hook.getPassthrough() - log_std_err_hook.startHookFunction(pas) - command_output = log_std_err_hook.getPassthrough() + command_output = logger_hook.attatch(command_output) try: if run_in_background: - VoidOutput(command_output) + voiding_hook.attatch(command_output) # TODO: run_in_background makes it incompatible with timeout, this is fixable # shell_process.wait(timeout=timeout) return b"" else: - buffer = OutputBuffer(command_output) + voiding_result_hook.attatch(command_output) retcode = shell_process.wait(timeout=timeout) - output = buffer.get_result() + output = output_hook_object.get_result() except subprocess.TimeoutExpired as err: - # killing this will send eof to and end the hooks aswell # killing this will send eof to and end the hooks aswell shell_process.kill() raise err @@ -235,4 +253,4 @@ def logger_hook_err(input_object: Output): finally: shell_process.terminate() # Wait allows the Popen process to cleanly terminate - ret = shell_process.wait(1) + shell_process.wait(1) diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py index 2a33efe8..63d267f8 100644 --- a/tests/ast-shell/shell_tests/ast_shell.py +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -71,7 +71,6 @@ def test_echo(self): # test echo with multiple parameters to make sure none mess up the result a = shell_out_new( convert_command_to_ast(f"echo benchkit_echo_test {str(args)}"), - print_command=True, **args, ) print(a) @@ -339,8 +338,6 @@ def test_ignore_return_codes(self): else args["success_value"] ) ) - print("----------------------") - print(retcode_to_output) shell_out_new( convert_command_to_ast(script_path_string("returnExitCode")), **args, diff --git a/tests/ast-shell/shell_tests/other_tests.py b/tests/ast-shell/shell_tests/other_tests.py index 5ce9f2a1..c8045e0c 100644 --- a/tests/ast-shell/shell_tests/other_tests.py +++ b/tests/ast-shell/shell_tests/other_tests.py @@ -4,6 +4,9 @@ import shlex import subprocess +from shell_scripts import TestTimeout, script_path_string, timeout + +from benchkit.shell.ast_shell_out import convert_command_to_ast, shell_out_new from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.variable_node import RuntimeVariable from benchkit.shell.commandAST.visitor import ( @@ -111,33 +114,34 @@ def testhalt(): # stdin=subprocess.PIPE, # ) # shell_process.wait() - # args = { - # "print_output": True, - # "output_is_log": True, - # "redirect_stderr_to_stdout": False, - # "current_dir": None, - # "environment": None, - # "timeout": None, - # "ignore_ret_codes": (), - # } - # shell_out_new(script_path_string("fillErrThenOut"), **args) - # print("yeet") + args = { + "print_output": True, + "output_is_log": True, + "redirect_stderr_to_stdout": False, + "current_dir": None, + "environment": None, + "timeout": None, + "ignore_ret_codes": (), + } + shell_out_new( + convert_command_to_ast(script_path_string("fillOutThenErr")), **args + ) + print("yeet") # test for the newlines - raw_output = shell_out( - command="cat", - std_input="a \n\n b \n c\n", - print_input=False, - print_output=False, - ) + # raw_output = shell_out( + # command="cat", + # std_input="a \n\n b \n c\n", + # print_input=False, + # print_output=False, + # ) - # test for command that does not fully output in deafault terminal - raw_output = shell_out( - command="/usr/bin/perf list --no-desc", - print_input=False, - print_output=False, - ) - return raw_output + # # test for command that does not fully output in deafault terminal + # raw_output = shell_out( + # command="/usr/bin/perf list --no-desc", + # output_is_log=True, + # ) + # return raw_output if __name__ == "__main__": From 53512013b1714f90c6b4bc08e24b27b97163b93b Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Mon, 2 Jun 2025 15:34:20 +0200 Subject: [PATCH 31/71] move hooks to thier own folder to reduce clutter Signed-off-by: Bogaert Aaron --- .../shell/CommunicationLayer/IO_stream.py | 6 ++ .../CommunicationLayer/hooks/basic_hooks.py | 51 ++++++++++++++++ .../CommunicationLayer/{ => hooks}/hook.py | 0 benchkit/shell/ast_shell_out.py | 59 ++----------------- benchkit/shell/shell.py | 2 +- tests/ast-shell/shell_tests/ast_shell.py | 2 +- 6 files changed, 64 insertions(+), 56 deletions(-) create mode 100644 benchkit/shell/CommunicationLayer/hooks/basic_hooks.py rename benchkit/shell/CommunicationLayer/{ => hooks}/hook.py (100%) diff --git a/benchkit/shell/CommunicationLayer/IO_stream.py b/benchkit/shell/CommunicationLayer/IO_stream.py index 95254972..988b04e7 100644 --- a/benchkit/shell/CommunicationLayer/IO_stream.py +++ b/benchkit/shell/CommunicationLayer/IO_stream.py @@ -64,3 +64,9 @@ def endWriting(self) -> None: def _read_bytes(self, amount_of_bytes: int) -> bytes: return os.read(self.reader, amount_of_bytes) + +def try_converting_bystring_to_readable_characters(bytestring: bytes) -> str | bytes: + try: + return bytestring.decode("utf-8") + except UnicodeDecodeError: + return bytestring diff --git a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py new file mode 100644 index 00000000..1c895315 --- /dev/null +++ b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py @@ -0,0 +1,51 @@ +from multiprocessing import Queue +from benchkit.shell.CommunicationLayer.IO_stream import IOStream, try_converting_bystring_to_readable_characters +from benchkit.shell.CommunicationLayer.hooks.hook import IOReaderHook, IOResultHook, IOWriterHook, OutputHook + + +def create_voiding_result_hook() -> IOResultHook: + def hook_function(input_object:IOStream,_,result_queue:Queue): + # we do not write to the out stream thus this is "voiding" + outlines: bytes = b"" + outline = input_object.read(10) + while outline: + outlines += outline + outline = input_object.read(10) + result_queue.put(outlines) + return IOResultHook(hook_function) + + +def create_stream_logger_hook(prefix:str) -> IOReaderHook: + def hook_function(input_object: IOStream): + a = input_object.read_line() + while a: + print( + f"{prefix} {try_converting_bystring_to_readable_characters(a)!r}\033[0m" + ) + a = input_object.read_line() + return IOReaderHook(hook_function) + +def void_input(input_object,_): + outline = input_object.read(10) + while outline: + outline = input_object.read(10) + + +def logger_hook(): + return OutputHook( + create_stream_logger_hook("\33[34m[OUT | {command_string}"), + create_stream_logger_hook("\033[91m[ERR | {command_string}]")) + +def void_hook(): + return OutputHook( + IOWriterHook(void_input), + IOWriterHook(void_input)) + +def std_out_result_void_err(): + output_hook_object = create_voiding_result_hook() + + voiding_result_hook = OutputHook( + output_hook_object, + IOWriterHook(void_input)) + + return (output_hook_object,voiding_result_hook) \ No newline at end of file diff --git a/benchkit/shell/CommunicationLayer/hook.py b/benchkit/shell/CommunicationLayer/hooks/hook.py similarity index 100% rename from benchkit/shell/CommunicationLayer/hook.py rename to benchkit/shell/CommunicationLayer/hooks/hook.py diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index e34cdb35..a4e64d4f 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -1,15 +1,14 @@ # Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. # SPDX-License-Identifier: MIT -from multiprocessing import Queue import os import pathlib import shlex import subprocess from typing import Dict, Iterable, List, Optional -from benchkit.shell.CommunicationLayer.IO_stream import IOStream -from benchkit.shell.CommunicationLayer.hook import IOReaderHook, IOResultHook, IOWriterHook, OutputHook +from benchkit.shell.CommunicationLayer.IO_stream import try_converting_bystring_to_readable_characters +from benchkit.shell.CommunicationLayer.hooks.basic_hooks import logger_hook, std_out_result_void_err, void_hook from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.commandNodes import CommandNode from benchkit.shell.commandAST.visitor import getString @@ -31,13 +30,6 @@ def convert_command_to_ast(command: str | List[str] | CommandNode) -> CommandNod return command_tree -def try_converting_bystring_to_readable_characters(bytestring: bytes) -> str | bytes: - try: - return bytestring.decode("utf-8") - except UnicodeDecodeError: - return bytestring - - def shell_out_new( command_tree: CommandNode, std_input: Optional[str] = None, @@ -136,48 +128,6 @@ def shell_out_new( else: stderr_out = subprocess.PIPE - def create_voiding_result_hook() -> IOResultHook: - def hook_function(input_object:IOStream,_,result_queue:Queue): - # we do not write to the out stream thus this is "voiding" - outlines: bytes = b"" - outline = input_object.read(10) - while outline: - outlines += outline - outline = input_object.read(10) - result_queue.put(outlines) - return IOResultHook(hook_function) - - - def create_stream_logger_hook(prefix:str) -> IOReaderHook: - def hook_function(input_object: IOStream): - a = input_object.read_line() - while a: - print( - f"{prefix} {try_converting_bystring_to_readable_characters(a)!r}\033[0m" - ) - a = input_object.read_line() - return IOReaderHook(hook_function) - - logger_hook = OutputHook( - create_stream_logger_hook("\33[34m[OUT | {command_string}"), - create_stream_logger_hook("\033[91m[ERR | {command_string}]") - ) - - def void_input(input_object,_): - outline = input_object.read(10) - while outline: - outline = input_object.read(10) - - output_hook_object = create_voiding_result_hook() - - voiding_result_hook = OutputHook( - output_hook_object, - IOWriterHook(void_input)) - - voiding_hook = OutputHook( - IOWriterHook(void_input), - IOWriterHook(void_input)) - shell_process = subprocess.Popen( # why exec: # we want to be able to use shell=True @@ -207,14 +157,15 @@ def void_input(input_object,_): if output_is_log: - command_output = logger_hook.attatch(command_output) + command_output = logger_hook().attatch(command_output) try: if run_in_background: - voiding_hook.attatch(command_output) + void_hook().attatch(command_output) # TODO: run_in_background makes it incompatible with timeout, this is fixable # shell_process.wait(timeout=timeout) return b"" else: + output_hook_object, voiding_result_hook = std_out_result_void_err() voiding_result_hook.attatch(command_output) retcode = shell_process.wait(timeout=timeout) output = output_hook_object.get_result() diff --git a/benchkit/shell/shell.py b/benchkit/shell/shell.py index 7c9569aa..0dc46a29 100644 --- a/benchkit/shell/shell.py +++ b/benchkit/shell/shell.py @@ -8,10 +8,10 @@ import sys from typing import Iterable, Optional +from benchkit.shell.CommunicationLayer.IO_stream import try_converting_bystring_to_readable_characters from benchkit.shell.ast_shell_out import ( convert_command_to_ast, shell_out_new, - try_converting_bystring_to_readable_characters, ) from benchkit.shell.utils import get_args, print_header from benchkit.utils.types import Command, Environment, PathType diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py index 63d267f8..495a224a 100644 --- a/tests/ast-shell/shell_tests/ast_shell.py +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -8,12 +8,12 @@ import unittest from typing import Any +from benchkit.shell.CommunicationLayer.IO_stream import try_converting_bystring_to_readable_characters from shell_scripts import TestTimeout, script_path_string, timeout from benchkit.shell.ast_shell_out import ( convert_command_to_ast, shell_out_new, - try_converting_bystring_to_readable_characters, ) # Due to print statements being inside of threads unittest does From a820e499a5d94baa243f9cd4f496c6a6d12de372 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Mon, 2 Jun 2025 15:38:58 +0200 Subject: [PATCH 32/71] fix formating errors for CI --- .../shell/CommunicationLayer/IO_stream.py | 1 + .../shell/CommunicationLayer/OutputObject.py | 11 ++-- .../CommunicationLayer/hooks/basic_hooks.py | 46 ++++++++++------ .../shell/CommunicationLayer/hooks/hook.py | 54 +++++++++++-------- benchkit/shell/ast_shell_out.py | 11 ++-- benchkit/shell/shell.py | 7 ++- tests/ast-shell/shell_tests/ast_shell.py | 7 ++- tests/ast-shell/shell_tests/other_tests.py | 7 +-- 8 files changed, 81 insertions(+), 63 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/IO_stream.py b/benchkit/shell/CommunicationLayer/IO_stream.py index 988b04e7..3a298bf6 100644 --- a/benchkit/shell/CommunicationLayer/IO_stream.py +++ b/benchkit/shell/CommunicationLayer/IO_stream.py @@ -65,6 +65,7 @@ def endWriting(self) -> None: def _read_bytes(self, amount_of_bytes: int) -> bytes: return os.read(self.reader, amount_of_bytes) + def try_converting_bystring_to_readable_characters(bytestring: bytes) -> str | bytes: try: return bytestring.decode("utf-8") diff --git a/benchkit/shell/CommunicationLayer/OutputObject.py b/benchkit/shell/CommunicationLayer/OutputObject.py index 7915c57a..5b2aa1ac 100644 --- a/benchkit/shell/CommunicationLayer/OutputObject.py +++ b/benchkit/shell/CommunicationLayer/OutputObject.py @@ -11,17 +11,14 @@ class Output(ABC): """interface to communicate with command output on all platforms, functions are due to compatibility""" - def __init__(self,std_out:IOStream|None,std_err:IOStream|None): + def __init__(self, std_out: IOStream | None, std_err: IOStream | None): if std_out is None: std_out = SshIOStream(None) - self.std_out:IOStream = std_out + self.std_out: IOStream = std_out if std_err is None: std_err = SshIOStream(None) - self.std_err:IOStream = std_err + self.std_err: IOStream = std_err def sshOutput(out: IO[bytes] | None, err: IO[bytes] | None) -> Output: - return Output( - SshIOStream(out), - SshIOStream(err) - ) + return Output(SshIOStream(out), SshIOStream(err)) diff --git a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py index 1c895315..a4a470f3 100644 --- a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py +++ b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py @@ -1,10 +1,22 @@ +# Copyright (C) 2025 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + from multiprocessing import Queue -from benchkit.shell.CommunicationLayer.IO_stream import IOStream, try_converting_bystring_to_readable_characters -from benchkit.shell.CommunicationLayer.hooks.hook import IOReaderHook, IOResultHook, IOWriterHook, OutputHook + +from benchkit.shell.CommunicationLayer.hooks.hook import ( + IOReaderHook, + IOResultHook, + IOWriterHook, + OutputHook, +) +from benchkit.shell.CommunicationLayer.IO_stream import ( + IOStream, + try_converting_bystring_to_readable_characters, +) def create_voiding_result_hook() -> IOResultHook: - def hook_function(input_object:IOStream,_,result_queue:Queue): + def hook_function(input_object: IOStream, _, result_queue: Queue): # we do not write to the out stream thus this is "voiding" outlines: bytes = b"" outline = input_object.read(10) @@ -12,20 +24,21 @@ def hook_function(input_object:IOStream,_,result_queue:Queue): outlines += outline outline = input_object.read(10) result_queue.put(outlines) + return IOResultHook(hook_function) -def create_stream_logger_hook(prefix:str) -> IOReaderHook: +def create_stream_logger_hook(prefix: str) -> IOReaderHook: def hook_function(input_object: IOStream): a = input_object.read_line() while a: - print( - f"{prefix} {try_converting_bystring_to_readable_characters(a)!r}\033[0m" - ) + print(f"{prefix} {try_converting_bystring_to_readable_characters(a)!r}\033[0m") a = input_object.read_line() + return IOReaderHook(hook_function) -def void_input(input_object,_): + +def void_input(input_object, _): outline = input_object.read(10) while outline: outline = input_object.read(10) @@ -33,19 +46,18 @@ def void_input(input_object,_): def logger_hook(): return OutputHook( - create_stream_logger_hook("\33[34m[OUT | {command_string}"), - create_stream_logger_hook("\033[91m[ERR | {command_string}]")) + create_stream_logger_hook("\33[34m[OUT | {command_string}"), + create_stream_logger_hook("\033[91m[ERR | {command_string}]"), + ) + def void_hook(): - return OutputHook( - IOWriterHook(void_input), - IOWriterHook(void_input)) + return OutputHook(IOWriterHook(void_input), IOWriterHook(void_input)) + def std_out_result_void_err(): output_hook_object = create_voiding_result_hook() - voiding_result_hook = OutputHook( - output_hook_object, - IOWriterHook(void_input)) + voiding_result_hook = OutputHook(output_hook_object, IOWriterHook(void_input)) - return (output_hook_object,voiding_result_hook) \ No newline at end of file + return (output_hook_object, voiding_result_hook) diff --git a/benchkit/shell/CommunicationLayer/hooks/hook.py b/benchkit/shell/CommunicationLayer/hooks/hook.py index 1d441d8c..6a37e795 100644 --- a/benchkit/shell/CommunicationLayer/hooks/hook.py +++ b/benchkit/shell/CommunicationLayer/hooks/hook.py @@ -1,11 +1,16 @@ +# Copyright (C) 2025 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + from __future__ import annotations # Otherwise Queue comlains about typing from abc import ABC, abstractmethod from multiprocessing import Process, Queue from typing import Any, Callable + from benchkit.shell.CommunicationLayer.IO_stream import IOStream, WritableIOStream from benchkit.shell.CommunicationLayer.OutputObject import Output + class IOHook(ABC): def __init__(self): self._output = WritableIOStream() @@ -19,7 +24,7 @@ def get_outgoing_io_stream(self) -> IOStream: class IOWriterHook(IOHook): - def __init__(self, hook_function:Callable[[IOStream,WritableIOStream],None]): + def __init__(self, hook_function: Callable[[IOStream, WritableIOStream], None]): self.hook_function = hook_function super().__init__() @@ -27,18 +32,21 @@ def start_hook_function(self, input_stream: IOStream) -> None: p = Process(target=self.hook_function, args=(input_stream, self._output)) p.start() - #Close the file descriptor of the main thread, the one from the process will still be alive + # Close the file descriptor of the main thread, the one from the process will still be alive self._output.endWriting() + class IOReaderHook(IOHook): - def __init__(self, hook_function:Callable[[IOStream],None]): + def __init__(self, hook_function: Callable[[IOStream], None]): self.hook_function = hook_function self._stream_duplicate = WritableIOStream() super().__init__() @staticmethod - def __pas_along_original_stream(input_stream:IOStream,output1_stream:WritableIOStream,output2_stream:WritableIOStream): + def __pas_along_original_stream( + input_stream: IOStream, output1_stream: WritableIOStream, output2_stream: WritableIOStream + ): while True: data = input_stream.read(1) if not data: @@ -48,44 +56,47 @@ def __pas_along_original_stream(input_stream:IOStream,output1_stream:WritableIOS output1_stream.endWriting() output2_stream.endWriting() - - def start_hook_function(self, input_stream: IOStream) -> None: - duplication_process = Process(target=self.__pas_along_original_stream, args=(input_stream, self._output,self._stream_duplicate,)) - reader_hook_process = Process(target=self.hook_function,args=(self._stream_duplicate,)) + duplication_process = Process( + target=self.__pas_along_original_stream, + args=( + input_stream, + self._output, + self._stream_duplicate, + ), + ) + reader_hook_process = Process(target=self.hook_function, args=(self._stream_duplicate,)) duplication_process.start() - #Close the file descriptor of the main thread, the one from the process will still be alive + # Close the file descriptor of the main thread, the one from the process will still be alive self._output.endWriting() self._stream_duplicate.endWriting() reader_hook_process.start() + class IOResultHook(IOHook): - def __init__(self, hook_function:Callable[[IOStream,WritableIOStream,Queue],None]): - self.__queue:Queue[Any] = Queue() + def __init__(self, hook_function: Callable[[IOStream, WritableIOStream, Queue], None]): + self.__queue: Queue[Any] = Queue() self.hook_function = hook_function super().__init__() def start_hook_function(self, input_stream: IOStream) -> None: - p = Process(target=self.hook_function, args=(input_stream, self._output,self.__queue)) + p = Process(target=self.hook_function, args=(input_stream, self._output, self.__queue)) p.start() - #Close the file descriptor of the main thread, the one from the process will still be alive + # Close the file descriptor of the main thread, the one from the process will still be alive self._output.endWriting() def get_result(self) -> Any: return self.__queue.get() - - - -class OutputHook(): - def __init__(self,std_out_hook:IOHook|None,std_err_hook:IOHook|None): +class OutputHook: + def __init__(self, std_out_hook: IOHook | None, std_err_hook: IOHook | None): self._std_out_hook = std_out_hook self._std_err_hook = std_err_hook - def attatch(self,output:Output) -> Output: + def attatch(self, output: Output) -> Output: std_out = output.std_out std_err = output.std_err if self._std_out_hook: @@ -94,7 +105,4 @@ def attatch(self,output:Output) -> Output: if self._std_err_hook: self._std_err_hook.start_hook_function(output.std_err) std_err = self._std_err_hook.get_outgoing_io_stream() - return Output( - std_out, - std_err - ) \ No newline at end of file + return Output(std_out, std_err) diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index a4e64d4f..d1948f95 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -7,11 +7,17 @@ import subprocess from typing import Dict, Iterable, List, Optional -from benchkit.shell.CommunicationLayer.IO_stream import try_converting_bystring_to_readable_characters -from benchkit.shell.CommunicationLayer.hooks.basic_hooks import logger_hook, std_out_result_void_err, void_hook from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.commandNodes import CommandNode from benchkit.shell.commandAST.visitor import getString +from benchkit.shell.CommunicationLayer.hooks.basic_hooks import ( + logger_hook, + std_out_result_void_err, + void_hook, +) +from benchkit.shell.CommunicationLayer.IO_stream import ( + try_converting_bystring_to_readable_characters, +) from benchkit.shell.CommunicationLayer.OutputObject import sshOutput @@ -155,7 +161,6 @@ def shell_out_new( command_output = sshOutput(shell_process.stdout, shell_process.stderr) - if output_is_log: command_output = logger_hook().attatch(command_output) try: diff --git a/benchkit/shell/shell.py b/benchkit/shell/shell.py index 0dc46a29..a5772ce5 100644 --- a/benchkit/shell/shell.py +++ b/benchkit/shell/shell.py @@ -8,10 +8,9 @@ import sys from typing import Iterable, Optional -from benchkit.shell.CommunicationLayer.IO_stream import try_converting_bystring_to_readable_characters -from benchkit.shell.ast_shell_out import ( - convert_command_to_ast, - shell_out_new, +from benchkit.shell.ast_shell_out import convert_command_to_ast, shell_out_new +from benchkit.shell.CommunicationLayer.IO_stream import ( + try_converting_bystring_to_readable_characters, ) from benchkit.shell.utils import get_args, print_header from benchkit.utils.types import Command, Environment, PathType diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py index 495a224a..8c283a85 100644 --- a/tests/ast-shell/shell_tests/ast_shell.py +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -8,12 +8,11 @@ import unittest from typing import Any -from benchkit.shell.CommunicationLayer.IO_stream import try_converting_bystring_to_readable_characters from shell_scripts import TestTimeout, script_path_string, timeout -from benchkit.shell.ast_shell_out import ( - convert_command_to_ast, - shell_out_new, +from benchkit.shell.ast_shell_out import convert_command_to_ast, shell_out_new +from benchkit.shell.CommunicationLayer.IO_stream import ( + try_converting_bystring_to_readable_characters, ) # Due to print statements being inside of threads unittest does diff --git a/tests/ast-shell/shell_tests/other_tests.py b/tests/ast-shell/shell_tests/other_tests.py index c8045e0c..6deeeae5 100644 --- a/tests/ast-shell/shell_tests/other_tests.py +++ b/tests/ast-shell/shell_tests/other_tests.py @@ -4,7 +4,7 @@ import shlex import subprocess -from shell_scripts import TestTimeout, script_path_string, timeout +from shell_scripts import script_path_string from benchkit.shell.ast_shell_out import convert_command_to_ast, shell_out_new from benchkit.shell.commandAST import command as makecommand @@ -16,7 +16,6 @@ printAst, resolveAllVariablesWithDict, ) -from benchkit.shell.shell import shell_out def commandtests(): @@ -123,9 +122,7 @@ def testhalt(): "timeout": None, "ignore_ret_codes": (), } - shell_out_new( - convert_command_to_ast(script_path_string("fillOutThenErr")), **args - ) + shell_out_new(convert_command_to_ast(script_path_string("fillOutThenErr")), **args) print("yeet") # test for the newlines From b97e2bf32ad5982c504fd750c363f5540af604f0 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Mon, 2 Jun 2025 15:58:30 +0200 Subject: [PATCH 33/71] fixes formating error for the output of commands when logging is enabled Signed-off-by: Bogaert Aaron --- .../CommunicationLayer/hooks/basic_hooks.py | 6 +++--- benchkit/shell/ast_shell_out.py | 21 +++++++++++++------ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py index a4a470f3..1b9c43ee 100644 --- a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py +++ b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py @@ -44,10 +44,10 @@ def void_input(input_object, _): outline = input_object.read(10) -def logger_hook(): +def logger_hook(command_string): return OutputHook( - create_stream_logger_hook("\33[34m[OUT | {command_string}"), - create_stream_logger_hook("\033[91m[ERR | {command_string}]"), + create_stream_logger_hook(f"\33[34m[OUT | {command_string}]"), + create_stream_logger_hook(f"\033[91m[ERR | {command_string}]"), ) diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index d1948f95..2abe9edc 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -1,11 +1,13 @@ # Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. # SPDX-License-Identifier: MIT +from io import TextIOWrapper import os import pathlib import shlex import subprocess -from typing import Dict, Iterable, List, Optional +import sys +from typing import IO, Dict, Iterable, List, Optional, TextIO from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.commandNodes import CommandNode @@ -38,7 +40,7 @@ def convert_command_to_ast(command: str | List[str] | CommandNode) -> CommandNod def shell_out_new( command_tree: CommandNode, - std_input: Optional[str] = None, + std_input: Optional[str | TextIO] = None, current_dir: Optional[pathlib.Path | os.PathLike | str] = None, environment: Optional[Dict[str, str]] = None, print_output: bool = False, @@ -129,10 +131,17 @@ def shell_out_new( # Use the visitor patterns to convert our tree to an executable string command_string = getString(command_tree) + stderr_out = subprocess.PIPE if redirect_stderr_to_stdout: stderr_out = subprocess.STDOUT - else: - stderr_out = subprocess.PIPE + + + std_input_arg = subprocess.PIPE + print(type(std_input)) + if isinstance(std_input,TextIOWrapper): + print("------------------------------") + std_input_arg = std_input + std_input = None shell_process = subprocess.Popen( # why exec: @@ -146,7 +155,7 @@ def shell_out_new( env=environment, stdout=subprocess.PIPE, stderr=stderr_out, - stdin=subprocess.PIPE, + stdin=std_input_arg, ) if print_command_start: print(f"\033[32m[START | {command_string}]\033[0m") @@ -162,7 +171,7 @@ def shell_out_new( command_output = sshOutput(shell_process.stdout, shell_process.stderr) if output_is_log: - command_output = logger_hook().attatch(command_output) + command_output = logger_hook(command_string).attatch(command_output) try: if run_in_background: void_hook().attatch(command_output) From 145bafb8e822bdf9099a54542ce11f281ad99e4c Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Mon, 2 Jun 2025 18:51:13 +0200 Subject: [PATCH 34/71] swith the interactive shell to use the new one Signed-off-by: Bogaert Aaron --- benchkit/shell/shell.py | 13 ++++++++++ tests/ast-shell/shell_tests/other_tests.py | 30 +++++++++++++--------- 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/benchkit/shell/shell.py b/benchkit/shell/shell.py index a5772ce5..6844ec2f 100644 --- a/benchkit/shell/shell.py +++ b/benchkit/shell/shell.py @@ -318,6 +318,19 @@ def shell_interactive( if the command exited with a non-zero exit code that is not ignored in `ignore_ret_codes`. """ + if USE_NEW_SHELL: + shell_out_new( + convert_command_to_ast(command), + std_input=sys.stdin, + current_dir=current_dir, + environment=environment, + output_is_log=True, + print_command_start=print_input, + # If ignore_ret_codes is empty we swap it over to None instead + ignore_ret_codes=ignore_ret_codes if not any(True for _ in ignore_ret_codes) else None, + ) + + arguments = get_args(command) print_header( arguments=arguments, diff --git a/tests/ast-shell/shell_tests/other_tests.py b/tests/ast-shell/shell_tests/other_tests.py index 6deeeae5..0bdbf1bb 100644 --- a/tests/ast-shell/shell_tests/other_tests.py +++ b/tests/ast-shell/shell_tests/other_tests.py @@ -4,6 +4,7 @@ import shlex import subprocess +from benchkit.shell.shell import shell_interactive from shell_scripts import script_path_string from benchkit.shell.ast_shell_out import convert_command_to_ast, shell_out_new @@ -113,17 +114,17 @@ def testhalt(): # stdin=subprocess.PIPE, # ) # shell_process.wait() - args = { - "print_output": True, - "output_is_log": True, - "redirect_stderr_to_stdout": False, - "current_dir": None, - "environment": None, - "timeout": None, - "ignore_ret_codes": (), - } - shell_out_new(convert_command_to_ast(script_path_string("fillOutThenErr")), **args) - print("yeet") + # args = { + # "print_output": True, + # "output_is_log": True, + # "redirect_stderr_to_stdout": False, + # "current_dir": None, + # "environment": None, + # "timeout": None, + # "ignore_ret_codes": (), + # } + # shell_out_new(convert_command_to_ast(script_path_string("fillOutThenErr")), **args) + # print("yeet") # test for the newlines # raw_output = shell_out( @@ -133,7 +134,12 @@ def testhalt(): # print_output=False, # ) - # # test for command that does not fully output in deafault terminal + # test for command that does not fully output in deafault terminal + + shell_interactive( + command="sh", + ) + # raw_output = shell_out( # command="/usr/bin/perf list --no-desc", # output_is_log=True, From 572bfccd792c4c1b25003f1396376b3fcbba2eb1 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Tue, 3 Jun 2025 09:22:39 +0200 Subject: [PATCH 35/71] remove prints Signed-off-by: Bogaert Aaron --- benchkit/shell/ast_shell_out.py | 2 -- benchkit/shell/shell.py | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 2abe9edc..58e419d9 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -137,9 +137,7 @@ def shell_out_new( std_input_arg = subprocess.PIPE - print(type(std_input)) if isinstance(std_input,TextIOWrapper): - print("------------------------------") std_input_arg = std_input std_input = None diff --git a/benchkit/shell/shell.py b/benchkit/shell/shell.py index 6844ec2f..cde8c754 100644 --- a/benchkit/shell/shell.py +++ b/benchkit/shell/shell.py @@ -324,6 +324,7 @@ def shell_interactive( std_input=sys.stdin, current_dir=current_dir, environment=environment, + # TODO: swap for custom logger once shell suports custom hooks output_is_log=True, print_command_start=print_input, # If ignore_ret_codes is empty we swap it over to None instead From 9482e58d041037f1906836960f133c1585eac4d2 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Thu, 5 Jun 2025 14:07:29 +0200 Subject: [PATCH 36/71] changes to accomodate better input --- tests/ast-shell/shell_tests/other_tests.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/ast-shell/shell_tests/other_tests.py b/tests/ast-shell/shell_tests/other_tests.py index 0bdbf1bb..55fe3b13 100644 --- a/tests/ast-shell/shell_tests/other_tests.py +++ b/tests/ast-shell/shell_tests/other_tests.py @@ -3,7 +3,9 @@ import shlex import subprocess +import sys +from benchkit.shell.CommunicationLayer.IO_stream import PipeIOStream, ReadableIOStream from benchkit.shell.shell import shell_interactive from shell_scripts import script_path_string @@ -136,6 +138,17 @@ def testhalt(): # test for command that does not fully output in deafault terminal + # def pasalong(input_stream:ReadableIOStream,_) -> None: + # outline = input_stream.read(10) + # print(f'outline{outline!r}') + # while outline: + # print(f'outline{outline}') + # outline = input_stream.read(10) + + # a = StdinIOStream(sys.stdin) + + # pasalong(a,2) + shell_interactive( command="sh", ) From 5ac9407dce24c90f698918339c564af2204421df Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Thu, 5 Jun 2025 20:13:55 +0200 Subject: [PATCH 37/71] change things, non working for reference Signed-off-by: Bogaert Aaron --- .../CommunicationLayer/CommandProcess.py | 25 ++++++ .../shell/CommunicationLayer/IO_stream.py | 18 +++- .../shell/CommunicationLayer/OutputObject.py | 8 +- .../CommunicationLayer/hooks/basic_hooks.py | 6 +- .../shell/CommunicationLayer/hooks/hook.py | 24 ++--- benchkit/shell/ast_shell_out.py | 90 +++++++++++-------- benchkit/shell/shell.py | 22 ++++- 7 files changed, 134 insertions(+), 59 deletions(-) create mode 100644 benchkit/shell/CommunicationLayer/CommandProcess.py diff --git a/benchkit/shell/CommunicationLayer/CommandProcess.py b/benchkit/shell/CommunicationLayer/CommandProcess.py new file mode 100644 index 00000000..865de158 --- /dev/null +++ b/benchkit/shell/CommunicationLayer/CommandProcess.py @@ -0,0 +1,25 @@ +from multiprocessing import Process, Queue +from subprocess import Popen + + +class CommandProcess(): + def __init__(self,popen_object,timeout): + self.popen_object = popen_object + self.timeout = timeout + self.__retcode_queue = Queue() + self.retcode = None + self.wait_async() + + @staticmethod + def wait_func(subprocess:Popen,queue:Queue,timeout:int): + retcode = subprocess.wait(timeout) + queue.put(retcode) + + + def wait_async(self): + Process(target=self.wait_func,args=(self.popen_object,self.__retcode_queue)) + + def get_return_code(self): + if self.retcode: + return self.retcode + self.retcode = self.__retcode_queue.get() \ No newline at end of file diff --git a/benchkit/shell/CommunicationLayer/IO_stream.py b/benchkit/shell/CommunicationLayer/IO_stream.py index 3a298bf6..906e9f28 100644 --- a/benchkit/shell/CommunicationLayer/IO_stream.py +++ b/benchkit/shell/CommunicationLayer/IO_stream.py @@ -3,10 +3,22 @@ import os from abc import ABC, abstractmethod +import sys from typing import IO +class WritableIOStream(ABC): -class IOStream(ABC): + @abstractmethod + def write(self, bytes_to_write: bytes) -> None: + pass + + @abstractmethod + def endWriting(self) -> None: + pass + + + +class ReadableIOStream(ABC): """interface to communicate with command output on all platforms, functions are due to compatibility""" @@ -36,7 +48,7 @@ def read_line(self) -> bytes: return byt -class SshIOStream(IOStream): +class SshIOStream(ReadableIOStream): def __init__(self, stream: IO[bytes] | None): self.__stream = stream super().__init__() @@ -47,7 +59,7 @@ def _read_bytes(self, amount_of_bytes: int) -> bytes: return b"" -class WritableIOStream(IOStream): +class PipeIOStream(ReadableIOStream,WritableIOStream): """A way to create a fileStream that can be used as a CommandOutput by other functions""" def __init__(self) -> None: diff --git a/benchkit/shell/CommunicationLayer/OutputObject.py b/benchkit/shell/CommunicationLayer/OutputObject.py index 5b2aa1ac..bb042e95 100644 --- a/benchkit/shell/CommunicationLayer/OutputObject.py +++ b/benchkit/shell/CommunicationLayer/OutputObject.py @@ -4,20 +4,20 @@ from abc import ABC from typing import IO -from benchkit.shell.CommunicationLayer.IO_stream import IOStream, SshIOStream +from benchkit.shell.CommunicationLayer.IO_stream import ReadableIOStream, SshIOStream class Output(ABC): """interface to communicate with command output on all platforms, functions are due to compatibility""" - def __init__(self, std_out: IOStream | None, std_err: IOStream | None): + def __init__(self, std_out: ReadableIOStream | None, std_err: ReadableIOStream | None): if std_out is None: std_out = SshIOStream(None) - self.std_out: IOStream = std_out + self.std_out: ReadableIOStream = std_out if std_err is None: std_err = SshIOStream(None) - self.std_err: IOStream = std_err + self.std_err: ReadableIOStream = std_err def sshOutput(out: IO[bytes] | None, err: IO[bytes] | None) -> Output: diff --git a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py index 1b9c43ee..c701735c 100644 --- a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py +++ b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py @@ -10,13 +10,13 @@ OutputHook, ) from benchkit.shell.CommunicationLayer.IO_stream import ( - IOStream, + ReadableIOStream, try_converting_bystring_to_readable_characters, ) def create_voiding_result_hook() -> IOResultHook: - def hook_function(input_object: IOStream, _, result_queue: Queue): + def hook_function(input_object: ReadableIOStream, _, result_queue: Queue): # we do not write to the out stream thus this is "voiding" outlines: bytes = b"" outline = input_object.read(10) @@ -29,7 +29,7 @@ def hook_function(input_object: IOStream, _, result_queue: Queue): def create_stream_logger_hook(prefix: str) -> IOReaderHook: - def hook_function(input_object: IOStream): + def hook_function(input_object: ReadableIOStream): a = input_object.read_line() while a: print(f"{prefix} {try_converting_bystring_to_readable_characters(a)!r}\033[0m") diff --git a/benchkit/shell/CommunicationLayer/hooks/hook.py b/benchkit/shell/CommunicationLayer/hooks/hook.py index 6a37e795..3bd83078 100644 --- a/benchkit/shell/CommunicationLayer/hooks/hook.py +++ b/benchkit/shell/CommunicationLayer/hooks/hook.py @@ -7,28 +7,28 @@ from multiprocessing import Process, Queue from typing import Any, Callable -from benchkit.shell.CommunicationLayer.IO_stream import IOStream, WritableIOStream +from benchkit.shell.CommunicationLayer.IO_stream import ReadableIOStream, PipeIOStream from benchkit.shell.CommunicationLayer.OutputObject import Output class IOHook(ABC): def __init__(self): - self._output = WritableIOStream() + self._output = PipeIOStream() @abstractmethod - def start_hook_function(self, input_stream: IOStream) -> None: + def start_hook_function(self, input_stream: ReadableIOStream) -> None: pass - def get_outgoing_io_stream(self) -> IOStream: + def get_outgoing_io_stream(self) -> ReadableIOStream: return self._output class IOWriterHook(IOHook): - def __init__(self, hook_function: Callable[[IOStream, WritableIOStream], None]): + def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream], None]): self.hook_function = hook_function super().__init__() - def start_hook_function(self, input_stream: IOStream) -> None: + def start_hook_function(self, input_stream: ReadableIOStream) -> None: p = Process(target=self.hook_function, args=(input_stream, self._output)) p.start() @@ -38,14 +38,14 @@ def start_hook_function(self, input_stream: IOStream) -> None: class IOReaderHook(IOHook): - def __init__(self, hook_function: Callable[[IOStream], None]): + def __init__(self, hook_function: Callable[[ReadableIOStream], None]): self.hook_function = hook_function - self._stream_duplicate = WritableIOStream() + self._stream_duplicate = PipeIOStream() super().__init__() @staticmethod def __pas_along_original_stream( - input_stream: IOStream, output1_stream: WritableIOStream, output2_stream: WritableIOStream + input_stream: ReadableIOStream, output1_stream: PipeIOStream, output2_stream: PipeIOStream ): while True: data = input_stream.read(1) @@ -56,7 +56,7 @@ def __pas_along_original_stream( output1_stream.endWriting() output2_stream.endWriting() - def start_hook_function(self, input_stream: IOStream) -> None: + def start_hook_function(self, input_stream: ReadableIOStream) -> None: duplication_process = Process( target=self.__pas_along_original_stream, args=( @@ -75,12 +75,12 @@ def start_hook_function(self, input_stream: IOStream) -> None: class IOResultHook(IOHook): - def __init__(self, hook_function: Callable[[IOStream, WritableIOStream, Queue], None]): + def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream, Queue], None]): self.__queue: Queue[Any] = Queue() self.hook_function = hook_function super().__init__() - def start_hook_function(self, input_stream: IOStream) -> None: + def start_hook_function(self, input_stream: ReadableIOStream) -> None: p = Process(target=self.hook_function, args=(input_stream, self._output, self.__queue)) p.start() diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 58e419d9..56c76806 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -1,14 +1,14 @@ # Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. # SPDX-License-Identifier: MIT -from io import TextIOWrapper import os import pathlib import shlex import subprocess -import sys -from typing import IO, Dict, Iterable, List, Optional, TextIO +from typing import Dict, Iterable, List, Optional + +from benchkit.shell.CommunicationLayer.hooks.hook import IOWriterHook from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.commandNodes import CommandNode from benchkit.shell.commandAST.visitor import getString @@ -18,7 +18,7 @@ void_hook, ) from benchkit.shell.CommunicationLayer.IO_stream import ( - try_converting_bystring_to_readable_characters, + ReadableIOStream, ) from benchkit.shell.CommunicationLayer.OutputObject import sshOutput @@ -40,10 +40,9 @@ def convert_command_to_ast(command: str | List[str] | CommandNode) -> CommandNod def shell_out_new( command_tree: CommandNode, - std_input: Optional[str | TextIO] = None, + std_input: Optional[ReadableIOStream] = None, current_dir: Optional[pathlib.Path | os.PathLike | str] = None, environment: Optional[Dict[str, str]] = None, - print_output: bool = False, timeout: Optional[int] = None, output_is_log: bool = False, ignore_ret_codes: Optional[Iterable[int]] = None, @@ -131,16 +130,11 @@ def shell_out_new( # Use the visitor patterns to convert our tree to an executable string command_string = getString(command_tree) + #TODO: I dont like this should be a hook so we can manipulate when this is done stderr_out = subprocess.PIPE if redirect_stderr_to_stdout: stderr_out = subprocess.STDOUT - - std_input_arg = subprocess.PIPE - if isinstance(std_input,TextIOWrapper): - std_input_arg = std_input - std_input = None - shell_process = subprocess.Popen( # why exec: # we want to be able to use shell=True @@ -153,20 +147,49 @@ def shell_out_new( env=environment, stdout=subprocess.PIPE, stderr=stderr_out, - stdin=std_input_arg, + stdin=subprocess.PIPE, ) - if print_command_start: - print(f"\033[32m[START | {command_string}]\033[0m") + # TODO:move to higher abstraction + # if print_command_start: + # print(f"\033[32m[START | {command_string}]\033[0m") try: - if shell_process.stdin is not None and std_input is not None: - shell_process.stdin.write(std_input.encode("utf-8")) - shell_process.stdin.flush() + # hookfunction to write a ReadableIOStream to stdin + # TODO: check if we can turn this into a deafault external hook (shell_process is accesed by scope) + def pasalong(input_stream:ReadableIOStream,_) -> None: + if shell_process.stdin is not None: + outline = input_stream.read(1) + while outline: + shell_process.stdin.write(outline) + shell_process.stdin.flush() + outline = input_stream.read(1) + + # feeding the standard input into the command + if std_input is not None: + hook = IOWriterHook(pasalong) + # TODO: replace std_input by hooked input + hook.start_hook_function(std_input) + elif shell_process.stdin is not None: + shell_process.stdin.close() + + command_output = sshOutput(shell_process.stdout, shell_process.stderr) + for hk in outhooks: + command_output = hk.attatch(command_output) + + void_hook().attatch(command_output) + + if shell_process.stdout is not None: + shell_process.stdout.close() + if shell_process.stderr is not None: + shell_process.stderr.close() if shell_process.stdin is not None: shell_process.stdin.close() - command_output = sshOutput(shell_process.stdout, shell_process.stderr) + return CommandProcess(shell_process,timeout) + + + if output_is_log: command_output = logger_hook(command_string).attatch(command_output) @@ -175,6 +198,7 @@ def shell_out_new( void_hook().attatch(command_output) # TODO: run_in_background makes it incompatible with timeout, this is fixable # shell_process.wait(timeout=timeout) + print("pa") return b"" else: output_hook_object, voiding_result_hook = std_out_result_void_err() @@ -187,10 +211,6 @@ def shell_out_new( shell_process.kill() raise err - if shell_process.stdout is not None: - shell_process.stdout.close() - if shell_process.stderr is not None: - shell_process.stderr.close() # not a sucsessfull execution and not an alowed exit code # raise the appropriate error @@ -200,20 +220,18 @@ def shell_out_new( shell_process.args, ) - if print_output and not output_is_log: - print("[OUT]") - print(f"{try_converting_bystring_to_readable_characters(output)}") - return output finally: # If something goes wrong we try to clean up after ourself # This can happen for example if we recieve a signal while waiting on an output - try: - if shell_process.stderr is not None: - shell_process.stderr.close() - if shell_process.stdout is not None: - shell_process.stdout.close() - finally: - shell_process.terminate() - # Wait allows the Popen process to cleanly terminate - shell_process.wait(1) + # TODO: dumbass this does not work with the "run_in_background argument" + pass + # try: + # if shell_process.stderr is not None: + # shell_process.stderr.close() + # if shell_process.stdout is not None: + # shell_process.stdout.close() + # finally: + # shell_process.terminate() + # # Wait allows the Popen process to cleanly terminate + # shell_process.wait(1) diff --git a/benchkit/shell/shell.py b/benchkit/shell/shell.py index cde8c754..0e84ed0d 100644 --- a/benchkit/shell/shell.py +++ b/benchkit/shell/shell.py @@ -4,12 +4,14 @@ Interactions with a shell. """ +import signal import subprocess import sys from typing import Iterable, Optional from benchkit.shell.ast_shell_out import convert_command_to_ast, shell_out_new from benchkit.shell.CommunicationLayer.IO_stream import ( + PipeIOStream, try_converting_bystring_to_readable_characters, ) from benchkit.shell.utils import get_args, print_header @@ -319,9 +321,11 @@ def shell_interactive( `ignore_ret_codes`. """ if USE_NEW_SHELL: + stdin_pipe = PipeIOStream() + shell_out_new( convert_command_to_ast(command), - std_input=sys.stdin, + std_input=stdin_pipe, current_dir=current_dir, environment=environment, # TODO: swap for custom logger once shell suports custom hooks @@ -329,8 +333,24 @@ def shell_interactive( print_command_start=print_input, # If ignore_ret_codes is empty we swap it over to None instead ignore_ret_codes=ignore_ret_codes if not any(True for _ in ignore_ret_codes) else None, + run_in_background=True ) + # TODO: return to this once we have a frame for the return value of shell_out_new + def signal_handler(sig, frame): + print('You pressed Ctrl+C!') + print(sig) + sys.exit(sig) + + signal.signal(signal.SIGINT, signal_handler) + + + outline = sys.stdin.read(1).encode("utf-8") + while outline: + print(outline) + stdin_pipe.write(outline) + outline = sys.stdin.read(1).encode("utf-8") + arguments = get_args(command) print_header( From c2196379115cc6f1de3cb485ecada8125c78d859 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Fri, 6 Jun 2025 17:15:36 +0200 Subject: [PATCH 38/71] rework the command outputs and convert shell to the new system Signed-off-by: Bogaert Aaron --- .../CommunicationLayer/CommandProcess.py | 61 +++-- .../shell/CommunicationLayer/IO_stream.py | 28 ++- .../CommunicationLayer/hooks/basic_hooks.py | 33 ++- .../shell/CommunicationLayer/hooks/hook.py | 29 ++- benchkit/shell/ast_shell_out.py | 157 ++++-------- benchkit/shell/shell.py | 229 ++++++++++++------ tests/ast-shell/shell_tests/other_tests.py | 27 ++- .../shell_tests/shell_scripts/runForever.sh | 2 + 8 files changed, 353 insertions(+), 213 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/CommandProcess.py b/benchkit/shell/CommunicationLayer/CommandProcess.py index 865de158..67198907 100644 --- a/benchkit/shell/CommunicationLayer/CommandProcess.py +++ b/benchkit/shell/CommunicationLayer/CommandProcess.py @@ -1,25 +1,56 @@ -from multiprocessing import Process, Queue -from subprocess import Popen + +from __future__ import annotations # Otherwise Queue comlains about typing + +from multiprocessing import Queue +from subprocess import Popen, TimeoutExpired +from threading import Thread +from time import sleep +from typing import Optional + +from benchkit.shell.CommunicationLayer.OutputObject import Output class CommandProcess(): - def __init__(self,popen_object,timeout): - self.popen_object = popen_object - self.timeout = timeout - self.__retcode_queue = Queue() - self.retcode = None - self.wait_async() + def __init__(self,popen_object:Popen,output:Output,timeout:Optional[int],success_value:int): + self.__popen_object:Popen = popen_object + self.__output:Output = output + self.__timeout:Optional[int] = timeout + self.__retcode_queue:Queue[int] = Queue() + self.success_value:int = success_value + self.retcode:Optional[int] = None + self.process:Thread = self.__wait_async() + + #TODO: ignore ret codes and succes value and errors @staticmethod - def wait_func(subprocess:Popen,queue:Queue,timeout:int): - retcode = subprocess.wait(timeout) - queue.put(retcode) + def wait_func(subprocess:Popen,queue:Queue,timeout:Optional[int]) -> None: + try: + retcode = subprocess.wait(timeout) + queue.put(retcode) + except TimeoutExpired: + #TODO: we can add some form of logging here to warn the user if something went wrong + subprocess.terminate() + queue.put(-1) + def __wait_async(self) -> Thread: + waiting_thread = Thread(target=self.wait_func,args=(self.__popen_object,self.__retcode_queue,self.__timeout)) + waiting_thread.start() + return waiting_thread - def wait_async(self): - Process(target=self.wait_func,args=(self.popen_object,self.__retcode_queue)) + def get_output(self) -> Output: + return self.__output - def get_return_code(self): + # TODO: throw error when needed instead of the -1 + def get_return_code(self) -> int: + print(f'poll main: {self.__popen_object.poll()}') if self.retcode: return self.retcode - self.retcode = self.__retcode_queue.get() \ No newline at end of file + self.process.join() + self.retcode = self.__retcode_queue.get() + return self.retcode + + # TODO: check how this interacts with ssh + # THIS DOES NOT SEND IT TO THE RIGHT ONE -> move abstraction higher + def signal(self,signalcode:int) -> None: + self.__popen_object.send_signal(signalcode) + # self.__popen_object.wait(1) \ No newline at end of file diff --git a/benchkit/shell/CommunicationLayer/IO_stream.py b/benchkit/shell/CommunicationLayer/IO_stream.py index 906e9f28..67163126 100644 --- a/benchkit/shell/CommunicationLayer/IO_stream.py +++ b/benchkit/shell/CommunicationLayer/IO_stream.py @@ -56,7 +56,33 @@ def __init__(self, stream: IO[bytes] | None): def _read_bytes(self, amount_of_bytes: int) -> bytes: if self.__stream: return self.__stream.read(amount_of_bytes) - return b"" + return b's' + +class StringIOStream(ReadableIOStream): + def __init__(self,string:str,encoding:str="utf-8"): + self.byte_string = string.encode(encoding) + self.length = len(self.byte_string) + self.index = 0 + super().__init__() + + def _read_bytes(self, amount_of_bytes): + if self.index + amount_of_bytes < self.length: + return_byte_string = self.byte_string[self.index:self.index + amount_of_bytes] + self.index += amount_of_bytes + return return_byte_string + else: + return_byte_string = self.byte_string[self.index:] + self.index=self.length + return return_byte_string + + + +class EmptyIOStream(ReadableIOStream): + def __init__(self): + super().__init__() + + def _read_bytes(self, _): + return b'' class PipeIOStream(ReadableIOStream,WritableIOStream): diff --git a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py index c701735c..70f054a8 100644 --- a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py +++ b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py @@ -2,6 +2,7 @@ # SPDX-License-Identifier: MIT from multiprocessing import Queue +from typing import Optional from benchkit.shell.CommunicationLayer.hooks.hook import ( IOReaderHook, @@ -28,29 +29,41 @@ def hook_function(input_object: ReadableIOStream, _, result_queue: Queue): return IOResultHook(hook_function) -def create_stream_logger_hook(prefix: str) -> IOReaderHook: - def hook_function(input_object: ReadableIOStream): - a = input_object.read_line() - while a: - print(f"{prefix} {try_converting_bystring_to_readable_characters(a)!r}\033[0m") - a = input_object.read_line() +def create_stream_logger_hook(formating_string:str,bytes_to_log:Optional[int]=None) -> IOReaderHook: + def hook_function_line(input_object: ReadableIOStream): + byt = input_object.read_line() + while byt: + print(formating_string.format(f"{try_converting_bystring_to_readable_characters(byt)}"),end="") + byt = input_object.read_line() + print(f"exited {formating_string.format('')}") - return IOReaderHook(hook_function) + def hook_function_byte(input_object: ReadableIOStream): + byt = input_object.read(bytes_to_log) + while byt: + print(formating_string.format(f"{try_converting_bystring_to_readable_characters(byt)!r}")) + byt = input_object.read(bytes_to_log) + return IOReaderHook(hook_function_line if bytes_to_log is None else hook_function_byte) +# TODO: Voiding can be done be done better but this will do for now +# problem: if there are hooks on the output they will wait for input still +# can be resolved by making use of EmptyIOStream +# Needs to be done on a higher level than hooks def void_input(input_object, _): outline = input_object.read(10) while outline: outline = input_object.read(10) -def logger_hook(command_string): +def logger_hook(outformat,errformat): return OutputHook( - create_stream_logger_hook(f"\33[34m[OUT | {command_string}]"), - create_stream_logger_hook(f"\033[91m[ERR | {command_string}]"), + create_stream_logger_hook(outformat), + create_stream_logger_hook(errformat), ) + + def void_hook(): return OutputHook(IOWriterHook(void_input), IOWriterHook(void_input)) diff --git a/benchkit/shell/CommunicationLayer/hooks/hook.py b/benchkit/shell/CommunicationLayer/hooks/hook.py index 3bd83078..f540bae9 100644 --- a/benchkit/shell/CommunicationLayer/hooks/hook.py +++ b/benchkit/shell/CommunicationLayer/hooks/hook.py @@ -5,9 +5,10 @@ from abc import ABC, abstractmethod from multiprocessing import Process, Queue +import signal from typing import Any, Callable -from benchkit.shell.CommunicationLayer.IO_stream import ReadableIOStream, PipeIOStream +from benchkit.shell.CommunicationLayer.IO_stream import EmptyIOStream, ReadableIOStream, PipeIOStream, WritableIOStream from benchkit.shell.CommunicationLayer.OutputObject import Output @@ -29,7 +30,7 @@ def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream], Non super().__init__() def start_hook_function(self, input_stream: ReadableIOStream) -> None: - p = Process(target=self.hook_function, args=(input_stream, self._output)) + p = Process(target=self.hook_function, args=(input_stream, self._output),) p.start() # Close the file descriptor of the main thread, the one from the process will still be alive @@ -65,7 +66,7 @@ def start_hook_function(self, input_stream: ReadableIOStream) -> None: self._stream_duplicate, ), ) - reader_hook_process = Process(target=self.hook_function, args=(self._stream_duplicate,)) + reader_hook_process = Process(target=self.hook_function, args=(self._stream_duplicate,),) duplication_process.start() # Close the file descriptor of the main thread, the one from the process will still be alive @@ -81,7 +82,7 @@ def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream, Queu super().__init__() def start_hook_function(self, input_stream: ReadableIOStream) -> None: - p = Process(target=self.hook_function, args=(input_stream, self._output, self.__queue)) + p = Process(target=self.hook_function, args=(input_stream, self._output, self.__queue),) p.start() # Close the file descriptor of the main thread, the one from the process will still be alive @@ -106,3 +107,23 @@ def attatch(self, output: Output) -> Output: self._std_err_hook.start_hook_function(output.std_err) std_err = self._std_err_hook.get_outgoing_io_stream() return Output(std_out, std_err) + +class MergeErrToOut(OutputHook): + def __init__(self): + self.std_out = PipeIOStream() + + def hookfunction(self,input_object:ReadableIOStream,_): + outline = input_object.read_line() + while outline: + self.std_out.write(outline) + outline = input_object.read_line() + + + def attatch(self, output:Output) -> Output: + stdout_hook = IOWriterHook(self.hookfunction) + stderr_hook = IOWriterHook(self.hookfunction) + stdout_hook.start_hook_function(output.std_out) + stderr_hook.start_hook_function(output.std_err) + self.std_out.endWriting() + + return Output(self.std_out,EmptyIOStream()) \ No newline at end of file diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 56c76806..873fd6b1 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -8,7 +8,8 @@ from typing import Dict, Iterable, List, Optional -from benchkit.shell.CommunicationLayer.hooks.hook import IOWriterHook +from benchkit.shell.CommunicationLayer.CommandProcess import CommandProcess +from benchkit.shell.CommunicationLayer.hooks.hook import IOHook, IOWriterHook, OutputHook from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.commandNodes import CommandNode from benchkit.shell.commandAST.visitor import getString @@ -18,122 +19,48 @@ void_hook, ) from benchkit.shell.CommunicationLayer.IO_stream import ( + EmptyIOStream, ReadableIOStream, + WritableIOStream, ) from benchkit.shell.CommunicationLayer.OutputObject import sshOutput +def execute_command( -def convert_command_to_ast(command: str | List[str] | CommandNode) -> CommandNode: - if isinstance(command, str): - command_tree = makecommand.command(command) - elif isinstance(command, list): - command_tree = makecommand.command(shlex.join(command)) - elif isinstance(command, CommandNode): - command_tree = command - else: - raise TypeError( - f"Shell out was called with a command of type {type(command)}," - "this is unexpected and not suported" - ) - return command_tree - - -def shell_out_new( - command_tree: CommandNode, - std_input: Optional[ReadableIOStream] = None, + # needed for starting the command + command: List[str], current_dir: Optional[pathlib.Path | os.PathLike | str] = None, environment: Optional[Dict[str, str]] = None, + + # needed for construction of output timeout: Optional[int] = None, - output_is_log: bool = False, ignore_ret_codes: Optional[Iterable[int]] = None, - print_command_start: bool = True, # Reworked feature success_value: int = 0, # New feature - redirect_stderr_to_stdout: bool = True, # New feature - run_in_background=False, # New feature + + std_input: Optional[ReadableIOStream] = None, + ordered_input_hooks:Optional[List[IOHook]] = None, + ordered_output_hooks:Optional[List[OutputHook]] = None, + + # Some of the visual printing are not supported. # Will probably swap over to a file based logging # system for these larger amounts of additionaly information + + + print_command_start: bool = True, # Reworked feature + redirect_stderr_to_stdout: bool = True, # New feature + run_in_background=False, # New feature + output_is_log: bool = False, + print_env: bool = True, # TEMPORARALY not suported print_curdir: bool = True, # TEMPORARALY not suported print_shell_cmd: bool = False, # TEMPORARALY not suported print_file_shell_cmd: bool = True, # TEMPORARALY not suported -) -> bytes: - """ - Run a shell command on the host system. - - Args: - command (Command): - the command to run. - std_input (Optional[str], optional): - input to feed to the command. - Defaults to None. - current_dir (Optional[PathType], optional): - directory where to run the command. If None, the current directory is used. - Defaults to None. - environment (Environment, optional): - environment variables to pass to the command. - Defaults to None. - shell (bool, optional): - whether to run the command in a shell environment (like "bash") or as a real command - given to "exec". - Defaults to False. - print_command (bool, optional): - whether to print the command. - Defaults to True. - print_output (bool, optional): - whether to print the output. - Defaults to True. - print_env (bool, optional): - whether to print the environment variables when they are defined. - Defaults to True. - print_curdir (bool, optional): - whether to print the current directory if provided. - Defaults to True. - print_shell_cmd (bool, optional): - whether to print the complete shell command, ready to be copy-pasted in a terminal. - Defaults to False. - print_file_shell_cmd (bool, optional): - whether to print the shell command in a log file (`/tmp/benchkit.sh`). - Defaults to True. - timeout (Optional[int], optional): - if not None, the command will be stopped after `timeout` seconds if it did not stop - earlier. - Defaults to None. - output_is_log (bool, optional): - whether the output of this command is logging and should be outputted as such, line by - line (e.g. cmake or make command). - Defaults to False. - ignore_ret_codes (Iterable[int], optional): - collection of error return codes to ignore if they are triggered. - This allows to avoid an exception to be raised for commands that do not end with 0 even - if they are successful. - Defaults to (). - split_arguments (bool, optional): - whether the command is split in parts. - This allows for the usage of commands using things like the pipe symbol, - use with shell=True for this functionality. - Defaults to True. - - Raises: - subprocess.CalledProcessError: - if the command exited with a non-zero exit code that is not ignored in - `ignore_ret_codes`. - - Returns: - str: the output of the shell command that completed successfully. - """ - if ignore_ret_codes is None: - ignore_ret_codes = (success_value,) - else: - ignore_ret_codes += (success_value,) +) -> CommandProcess: # Use the visitor patterns to convert our tree to an executable string - command_string = getString(command_tree) - #TODO: I dont like this should be a hook so we can manipulate when this is done - stderr_out = subprocess.PIPE - if redirect_stderr_to_stdout: - stderr_out = subprocess.STDOUT + # command_string.insert(0, "exec") shell_process = subprocess.Popen( # why exec: @@ -141,12 +68,12 @@ def shell_out_new( # however this would make the shell the pid of the subprocess # by using exec we can get make the command take over the pid of the shell # this only works for POSIX (fixable for non posix by finding child) - f"exec {command_string}", - shell=True, + command, + # shell=True, cwd=current_dir, env=environment, stdout=subprocess.PIPE, - stderr=stderr_out, + stderr=subprocess.PIPE, stdin=subprocess.PIPE, ) @@ -154,6 +81,14 @@ def shell_out_new( # if print_command_start: # print(f"\033[32m[START | {command_string}]\033[0m") try: + if ordered_input_hooks is not None: + if std_input is None: + std_input = EmptyIOStream() + for inhook in ordered_input_hooks: + inhook.start_hook_function(std_input) + std_input = inhook.get_outgoing_io_stream() + + # hookfunction to write a ReadableIOStream to stdin # TODO: check if we can turn this into a deafault external hook (shell_process is accesed by scope) def pasalong(input_stream:ReadableIOStream,_) -> None: @@ -163,22 +98,24 @@ def pasalong(input_stream:ReadableIOStream,_) -> None: shell_process.stdin.write(outline) shell_process.stdin.flush() outline = input_stream.read(1) + shell_process.stdin.close() + # feeding the standard input into the command if std_input is not None: hook = IOWriterHook(pasalong) # TODO: replace std_input by hooked input hook.start_hook_function(std_input) - elif shell_process.stdin is not None: + if shell_process.stdin is not None: shell_process.stdin.close() command_output = sshOutput(shell_process.stdout, shell_process.stderr) - for hk in outhooks: - command_output = hk.attatch(command_output) - - void_hook().attatch(command_output) + if ordered_output_hooks is not None: + for outhook in ordered_output_hooks: + command_output = outhook.attatch(command_output) + # close all the main thread file descriptors if shell_process.stdout is not None: shell_process.stdout.close() if shell_process.stderr is not None: @@ -186,7 +123,7 @@ def pasalong(input_stream:ReadableIOStream,_) -> None: if shell_process.stdin is not None: shell_process.stdin.close() - return CommandProcess(shell_process,timeout) + return CommandProcess(shell_process,command_output,timeout,success_value) @@ -201,10 +138,10 @@ def pasalong(input_stream:ReadableIOStream,_) -> None: print("pa") return b"" else: - output_hook_object, voiding_result_hook = std_out_result_void_err() - voiding_result_hook.attatch(command_output) - retcode = shell_process.wait(timeout=timeout) - output = output_hook_object.get_result() + output_hook_object, voiding_result_hook = std_out_result_void_err() + voiding_result_hook.attatch(command_output) + retcode = shell_process.wait(timeout=timeout) + output = output_hook_object.get_result() except subprocess.TimeoutExpired as err: # killing this will send eof to and end the hooks aswell diff --git a/benchkit/shell/shell.py b/benchkit/shell/shell.py index 0e84ed0d..90b4b869 100644 --- a/benchkit/shell/shell.py +++ b/benchkit/shell/shell.py @@ -4,24 +4,47 @@ Interactions with a shell. """ +import shlex import signal import subprocess import sys -from typing import Iterable, Optional +from time import sleep +from typing import Iterable, List, Optional -from benchkit.shell.ast_shell_out import convert_command_to_ast, shell_out_new +from benchkit.shell.CommunicationLayer.hooks.basic_hooks import create_stream_logger_hook, logger_hook, std_out_result_void_err, void_hook, void_input +from benchkit.shell.CommunicationLayer.hooks.hook import IOWriterHook, MergeErrToOut +from benchkit.shell.commandAST import command as makecommand +from benchkit.shell.ast_shell_out import execute_command from benchkit.shell.CommunicationLayer.IO_stream import ( + EmptyIOStream, PipeIOStream, - try_converting_bystring_to_readable_characters, + ReadableIOStream, + StringIOStream, ) +from benchkit.shell.commandAST.nodes.commandNodes import CommandNode from benchkit.shell.utils import get_args, print_header from benchkit.utils.types import Command, Environment, PathType +def convert_command_to_ast(command: str | List[str] | CommandNode) -> CommandNode: + if isinstance(command, str): + command_tree = makecommand.command(command) + elif isinstance(command, list): + command_tree = makecommand.command(shlex.join(command)) + elif isinstance(command, CommandNode): + command_tree = command + else: + raise TypeError( + f"Shell out was called with a command of type {type(command)}," + "this is unexpected and not suported" + ) + return command_tree + USE_NEW_SHELL = True def pipe_shell_out( - command: Command, + # command: Command, + commands: List[Command], current_dir: Optional[PathType] = None, shell: bool = True, print_command: bool = True, @@ -41,6 +64,41 @@ def pipe_shell_out( Returns: str: the output of the piped command. """ + i:ReadableIOStream = EmptyIOStream() + processes = [] + for com in commands: + command = shlex.split(com) if isinstance(com,str) else com + command_string = shlex.join(command) + output_hooks = [] + log = logger_hook( + f"\033[34m[OUT | {command_string}]\033[0m" + " {}", + f"\033[91m[ERR | {command_string}]\033[0m" + " {}" + ) + output_hooks.append(log) + input_hooks = [] + + a = create_stream_logger_hook(f'input of {command_string} |' + ' {}') + input_hooks.append(a) + print(f"\033[32m[START | {command_string}]\033[0m") + process = execute_command( + command = command, + std_input=i, + current_dir=current_dir, + ordered_output_hooks=output_hooks, + ordered_input_hooks=input_hooks, + # If ignore_ret_codes is empty we swap it over to None instead + ignore_ret_codes=ignore_ret_codes if not any(True for _ in ignore_ret_codes) else None, + ) + processes.append(process) + i = process.get_output().std_out + # IOWriterHook(void_input).start_hook_function(process.get_output().std_err) + + # IOWriterHook(void_input).start_hook_function(i) + for p in processes: + print(p.get_return_code()) + + + return '' arguments = get_args(command) if print_command: print_header( @@ -152,19 +210,57 @@ def shell_out( str: the output of the shell command that completed successfully. """ if USE_NEW_SHELL: - output_bytes = shell_out_new( - convert_command_to_ast(command), - std_input=std_input, + command = shlex.split(command) if isinstance(command,str) else command + command_string = shlex.join(command) + + # convert string input to an IOStream + std_input_io = StringIOStream(std_input) if std_input is not None else None + output_hooks = [] + + # add hook to log the output of the command + # TODO: make this customizable + if output_is_log: + log = logger_hook( + f"\033[34m[OUT | {command_string}]\033[0m" + " {}", + f"\033[91m[ERR | {command_string}]\033[0m" + " {}" + ) + output_hooks.append(log) + + # Print the input string + if print_input: + print(f"\033[32m[START | {command_string}]\033[0m") + + # Original implementation considered the error to be part of the output, + # we merge them together here (done line wise) + merge = MergeErrToOut() + output_hooks.append(merge) + + # gather the entire stdout stream into a variable + output_hook_object, voiding_result_hook = std_out_result_void_err() + + output_hooks.append(voiding_result_hook) + + # this will make sure we clear all our outputs in the end + # otherwise the command might block + # TODO: we can make the voiding result hook do this + output_hooks.append(void_hook()) + + process = execute_command( + command = command, + std_input=std_input_io, current_dir=current_dir, environment=environment, - print_output=print_output, timeout=timeout, - output_is_log=output_is_log, + ordered_output_hooks=output_hooks, print_command_start=print_input, # If ignore_ret_codes is empty we swap it over to None instead ignore_ret_codes=ignore_ret_codes if not any(True for _ in ignore_ret_codes) else None, ) - return try_converting_bystring_to_readable_characters(output_bytes) + + # decode to turn bytestream of into the desired string + # this can fail but is in line with original implementation + return output_hook_object.get_result().decode("utf-8") + arguments = get_args(command) print_header( @@ -278,78 +374,75 @@ def shell_interactive( print_file_shell_cmd: bool = True, ignore_ret_codes: Iterable[int] = (), ) -> None: - """ - Run a shell command that is interactive (with prompts, etc.). + if USE_NEW_SHELL: + command = shlex.split(command) if isinstance(command,str) else command - Args: - command (Command): - the command to run. - current_dir (Optional[PathType], optional): - directory where to run the command. If None, the current directory is used. - Defaults to None. - environment (Environment, optional): - environment variables to pass to the command. - Defaults to None. - shell (bool, optional): - whether to run the command in a shell environment (like "bash") or as a real command - given to "exec". - Defaults to False. - print_input (bool, optional): - whether to print the command. TODO should be renamed "print_command" - Defaults to True. - print_env (bool, optional): - whether to print the environment variables when they are defined. - Defaults to True. - print_curdir (bool, optional): - whether to print the current directory if provided. - Defaults to True. - print_shell_cmd (bool, optional): - whether to print the complete shell command, ready to be copy-pasted in a terminal. - Defaults to False. - print_file_shell_cmd (bool, optional): - whether to print the shell command in a log file (`/tmp/benchkit.sh`). - Defaults to True. - ignore_ret_codes (Iterable[int], optional): - collection of error return codes to ignore if they are triggered. - This allows to avoid an exception to be raised for commands that do not end with 0 even - if they are successful. - Defaults to (). + # convert string input to an IOStream + std_input_io = PipeIOStream() + output_hooks = [] - Raises: - subprocess.CalledProcessError: - if the command exited with a non-zero exit code that is not ignored in - `ignore_ret_codes`. - """ - if USE_NEW_SHELL: - stdin_pipe = PipeIOStream() + # add hook to log the output of the command + # TODO: make this customizable + log = logger_hook( + "> {}", + "! {}", + ) + output_hooks.append(log) - shell_out_new( - convert_command_to_ast(command), - std_input=stdin_pipe, + # TODO: log hook could be written better here to do this + output_hooks.append(void_hook()) + + # Print the input string + if print_input: + print(f"\033[32m[START | {shlex.join(command)}]\033[0m") + + process = execute_command( + command = command, + std_input=std_input_io, current_dir=current_dir, environment=environment, - # TODO: swap for custom logger once shell suports custom hooks - output_is_log=True, + ordered_output_hooks=output_hooks, print_command_start=print_input, # If ignore_ret_codes is empty we swap it over to None instead ignore_ret_codes=ignore_ret_codes if not any(True for _ in ignore_ret_codes) else None, - run_in_background=True ) - # TODO: return to this once we have a frame for the return value of shell_out_new + # We want that the first interupt signal + # goes to the process we are interacting with + original_sigint_handler = signal.getsignal(signal.SIGINT) def signal_handler(sig, frame): - print('You pressed Ctrl+C!') - print(sig) - sys.exit(sig) - + process.signal(sig) + # sys.stdin.close() + signal.signal(signal.SIGINT, original_sigint_handler) signal.signal(signal.SIGINT, signal_handler) - - outline = sys.stdin.read(1).encode("utf-8") - while outline: - print(outline) - stdin_pipe.write(outline) + # use our stdin as the interaction for the process + try: outline = sys.stdin.read(1).encode("utf-8") + while outline: + std_input_io.write(outline) + outline = sys.stdin.read(1).encode("utf-8") + # The implementation of sigint will error above code + # This is intended as the exit method + except Exception: + pass + # Cleanly close the input file + std_input_io.endWriting() + + + return None + + + + + + + + + + + + # TODO: return to this once we have a frame for the return value of shell_out_new arguments = get_args(command) diff --git a/tests/ast-shell/shell_tests/other_tests.py b/tests/ast-shell/shell_tests/other_tests.py index 55fe3b13..1e6a1cdb 100644 --- a/tests/ast-shell/shell_tests/other_tests.py +++ b/tests/ast-shell/shell_tests/other_tests.py @@ -6,10 +6,11 @@ import sys from benchkit.shell.CommunicationLayer.IO_stream import PipeIOStream, ReadableIOStream -from benchkit.shell.shell import shell_interactive +from benchkit.shell.CommunicationLayer.hooks.basic_hooks import logger_hook, std_out_result_void_err +from benchkit.shell.shell import pipe_shell_out, shell_interactive, shell_out from shell_scripts import script_path_string -from benchkit.shell.ast_shell_out import convert_command_to_ast, shell_out_new +from benchkit.shell.ast_shell_out import execute_command from benchkit.shell.commandAST import command as makecommand from benchkit.shell.commandAST.nodes.variable_node import RuntimeVariable from benchkit.shell.commandAST.visitor import ( @@ -148,11 +149,27 @@ def testhalt(): # a = StdinIOStream(sys.stdin) # pasalong(a,2) - - shell_interactive( - command="sh", + # ssh aaronb@soft24.vub.ac.be sleep 10 + # shell_interactive( + # # command=['ssh', 'aaronb@soft24.vub.ac.be', 'ls -A -w 1'], + # # command=['ssh', 'aaronb@soft24.vub.ac.be', 'sleep 10'], + # command=['sh'], + # # output_is_log=True + # ) + shell_out( + # command=['/home/aaronb/Documents/benchFork/benchkit/tests/ast-shell/shell_tests/shell_scripts/runForever.sh'], + # command=['ssh', 'aaronb@soft24.vub.ac.be', 'sleep 10'], + command=['ls'], + output_is_log=True ) + pipe_shell_out( + [ + "/home/aaronb/Documents/benchFork/benchkit/tests/ast-shell/shell_tests/shell_scripts/runForever.sh","cat" + ] + ) + print('a') + # print(a) # raw_output = shell_out( # command="/usr/bin/perf list --no-desc", # output_is_log=True, diff --git a/tests/ast-shell/shell_tests/shell_scripts/runForever.sh b/tests/ast-shell/shell_tests/shell_scripts/runForever.sh index 34db0e03..4ea637f1 100755 --- a/tests/ast-shell/shell_tests/shell_scripts/runForever.sh +++ b/tests/ast-shell/shell_tests/shell_scripts/runForever.sh @@ -1 +1,3 @@ +#!/bin/bash + while true ; do date -Ins;sleep 1; done \ No newline at end of file From a49e401fca1849e23fca999a5166d4ccb8757550 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Sat, 7 Jun 2025 14:35:45 +0200 Subject: [PATCH 39/71] finish implementation of new structs Signed-off-by: Bogaert Aaron --- tests/ast-shell/shell_tests/ast_shell.py | 63 ++++++++++------------ tests/ast-shell/shell_tests/other_tests.py | 16 +++--- 2 files changed, 37 insertions(+), 42 deletions(-) diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py index 8c283a85..6970d33b 100644 --- a/tests/ast-shell/shell_tests/ast_shell.py +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -10,7 +10,7 @@ from shell_scripts import TestTimeout, script_path_string, timeout -from benchkit.shell.ast_shell_out import convert_command_to_ast, shell_out_new +from benchkit.shell.shell import shell_out from benchkit.shell.CommunicationLayer.IO_stream import ( try_converting_bystring_to_readable_characters, ) @@ -52,13 +52,12 @@ def get_arguments_dict_list( class BasicShellTests(unittest.TestCase): - # @unittest.skip("disabled for debugging") + @unittest.skip("disabled for debugging") def test_echo(self): """Basic tests to see if the command-line can execute a given command and return the correct output given a range of arguments""" argument_list = get_arguments_dict_list( { - "redirect_stderr_to_stdout": [True, False], "current_dir": [None, pathlib.Path(__file__).parent.resolve()], "environment": [None, {"test": "test"}], "timeout": [None, 20], @@ -68,25 +67,24 @@ def test_echo(self): for args in argument_list: with timeout(1): # test echo with multiple parameters to make sure none mess up the result - a = shell_out_new( - convert_command_to_ast(f"echo benchkit_echo_test {str(args)}"), + a = shell_out( + ['echo', 'benchkit_echo_test', str(args)], **args, ) print(a) expeced_result = re.sub(r"\'", "", f"benchkit_echo_test {str(args)}") print(expeced_result) self.assertEqual( - try_converting_bystring_to_readable_characters(a), - f"{expeced_result}\n", + a, + f"benchkit_echo_test {str(args)}\n", "shell does not provide the right output in the result", ) - # @unittest.skip("disabled for debugging") + @unittest.skip("disabled for debugging") def test_run_forever(self): """Test to make sure that commands do not exit prematurely""" argument_list = get_arguments_dict_list( { - "redirect_stderr_to_stdout": [True, False], "current_dir": [None, pathlib.Path(__file__).parent.resolve()], "environment": [None, {"test": "test"}], "timeout": [None, 20], @@ -96,14 +94,13 @@ def test_run_forever(self): for args in argument_list: with self.assertRaises(TestTimeout): with timeout(5): - shell_out_new(convert_command_to_ast(script_path_string("runForever")), **args) + shell_out(convert_command_to_ast(script_path_string("runForever")), **args) # @unittest.skip("disabled for debugging") def test_timeout(self): """testing the timeout argument""" argument_list = get_arguments_dict_list( { - "redirect_stderr_to_stdout": [True, False], "current_dir": [None, pathlib.Path(__file__).parent.resolve()], "environment": [None, {"test": "test"}], "ignore_ret_codes": [(), (1,)], @@ -114,11 +111,10 @@ def test_timeout(self): for args in argument_list: with timeout(5): with self.assertRaises(subprocess.TimeoutExpired): - shell_out_new(convert_command_to_ast(script_path_string("runForever")), **args) + shell_out(script_path_string("runForever"), **args) argument_list = get_arguments_dict_list( { - "redirect_stderr_to_stdout": [True, False], "current_dir": [None, pathlib.Path(__file__).parent.resolve()], "environment": [None, {"test": "test"}], "ignore_ret_codes": [(), (1,)], @@ -130,14 +126,13 @@ def test_timeout(self): for args in argument_list: with self.assertRaises(TestTimeout): with timeout(5): - shell_out_new(convert_command_to_ast(script_path_string("runForever")), **args) + shell_out(script_path_string("runForever"), **args) - # @unittest.skip("disabled for debugging") + @unittest.skip("disabled for debugging") def test_input(self): """testing the use of the std_input parameter""" argument_list = get_arguments_dict_list( { - "redirect_stderr_to_stdout": [True, False], "current_dir": [None, pathlib.Path(__file__).parent.resolve()], "environment": [None, {"test": "test"}], "ignore_ret_codes": [(), (1,)], @@ -146,25 +141,24 @@ def test_input(self): for args in argument_list: with timeout(10): - out = shell_out_new( - convert_command_to_ast(script_path_string("writeBack")), + out = shell_out( + script_path_string("writeBack"), std_input=f"benchkit input test {str(args)}\n", **args, ) self.assertEqual( - try_converting_bystring_to_readable_characters(out), + out, f"benchkit input test {str(args)}\n", f"recieved{out}", ) - # @unittest.skip("disabled for debugging") + @unittest.skip("disabled for debugging") def test_command_blocks_io_overfull(self): """Overfull internal IO buffers would halt the execution of the command Here we test whether or not this happens in our implementation """ argument_list = get_arguments_dict_list( { - "redirect_stderr_to_stdout": [True, False], "current_dir": [None, pathlib.Path(__file__).parent.resolve()], "environment": [None, {"test": "test"}], "timeout": [None, 20], @@ -176,8 +170,8 @@ def test_command_blocks_io_overfull(self): try: with timeout(20): # tests for filling the std_err - shell_out_new( - convert_command_to_ast(script_path_string("fillErrThenOut")), **args + shell_out( + script_path_string("fillErrThenOut"), **args ) except TestTimeout: self.fail( @@ -189,14 +183,16 @@ def test_command_blocks_io_overfull(self): try: with timeout(20): # tests for filling the std_io - shell_out_new( - convert_command_to_ast(script_path_string("fillOutThenErr")), **args + shell_out( + script_path_string("fillOutThenErr"), **args ) except TestTimeout: self.fail("the command got halted during excecution") raise TestTimeout - # @unittest.skip("disabled for debugging") + + #TODO: success value should be tested at lower abstraction level + @unittest.skip("disabled for debugging") def test_ignore_return_codes(self): """Overfull internal IO buffers would halt the execution of the command Here we test whether or not this happens in our implementation @@ -205,7 +201,6 @@ def test_ignore_return_codes(self): # test that success value does not throw an error regardles of ignore ret_codes argument_list = get_arguments_dict_list( { - "redirect_stderr_to_stdout": [True, False], "current_dir": [None, pathlib.Path(__file__).parent.resolve()], "environment": [None, {"test": "test"}], "timeout": [None, 20], @@ -235,8 +230,8 @@ def test_ignore_return_codes(self): with timeout(20): # tests for filling the std_err retcode_to_output = args["success_value"] - shell_out_new( - convert_command_to_ast(script_path_string("returnExitCode")), + shell_out( + script_path_string("returnExitCode"), **args, std_input=f"{retcode_to_output}\n", ) @@ -250,7 +245,6 @@ def test_ignore_return_codes(self): # test that error codes in ignore list do not throw error argument_list = get_arguments_dict_list( { - "redirect_stderr_to_stdout": [True, False], "current_dir": [None, pathlib.Path(__file__).parent.resolve()], "environment": [None, {"test": "test"}], "timeout": [None, 20], @@ -283,8 +277,8 @@ def test_ignore_return_codes(self): if len(args["ignore_ret_codes"]) > 0 else 0 ) - shell_out_new( - convert_command_to_ast(script_path_string("returnExitCode")), + shell_out( + script_path_string("returnExitCode"), **args, std_input=f"{retcode_to_output}\n", ) @@ -298,7 +292,6 @@ def test_ignore_return_codes(self): # test that error code still throws an error argument_list = get_arguments_dict_list( { - "redirect_stderr_to_stdout": [True, False], "current_dir": [None, pathlib.Path(__file__).parent.resolve()], "environment": [None, {"test": "test"}], "timeout": [None, 20], @@ -337,8 +330,8 @@ def test_ignore_return_codes(self): else args["success_value"] ) ) - shell_out_new( - convert_command_to_ast(script_path_string("returnExitCode")), + shell_out( + script_path_string("returnExitCode"), **args, std_input=f"{retcode_to_output}\n", ) diff --git a/tests/ast-shell/shell_tests/other_tests.py b/tests/ast-shell/shell_tests/other_tests.py index 1e6a1cdb..5e7adc16 100644 --- a/tests/ast-shell/shell_tests/other_tests.py +++ b/tests/ast-shell/shell_tests/other_tests.py @@ -159,15 +159,17 @@ def testhalt(): shell_out( # command=['/home/aaronb/Documents/benchFork/benchkit/tests/ast-shell/shell_tests/shell_scripts/runForever.sh'], # command=['ssh', 'aaronb@soft24.vub.ac.be', 'sleep 10'], - command=['ls'], - output_is_log=True + # command=['ls'], + command='/home/aaron/benchkitFork/benchkit/tests/ast-shell/shell_tests/shell_scripts/runForever.sh', + output_is_log=True, + timeout=5 ) - pipe_shell_out( - [ - "/home/aaronb/Documents/benchFork/benchkit/tests/ast-shell/shell_tests/shell_scripts/runForever.sh","cat" - ] - ) + # pipe_shell_out( + # [ + # "/home/aaron/benchkitFork/benchkit/tests/ast-shell/shell_tests/shell_scripts/runForever.sh","cat" + # ] + # ) print('a') # print(a) # raw_output = shell_out( From 160ff163d2f3beb8682488919594a7386271f229 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Sat, 7 Jun 2025 14:36:30 +0200 Subject: [PATCH 40/71] finish implementation of new structs Signed-off-by: Bogaert Aaron --- benchkit/communication/docker.py | 1 + benchkit/shell/CommunicationLayer/CommandProcess.py | 11 ++++++++++- benchkit/shell/shell.py | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/benchkit/communication/docker.py b/benchkit/communication/docker.py index 0cbf2e45..154a0ab0 100644 --- a/benchkit/communication/docker.py +++ b/benchkit/communication/docker.py @@ -105,6 +105,7 @@ def shell( timeout=timeout, output_is_log=output_is_log, ignore_ret_codes=ignore_ret_codes, + ignore_any_error_code=ignore_any_error_code, ) return output diff --git a/benchkit/shell/CommunicationLayer/CommandProcess.py b/benchkit/shell/CommunicationLayer/CommandProcess.py index 67198907..36f65ae9 100644 --- a/benchkit/shell/CommunicationLayer/CommandProcess.py +++ b/benchkit/shell/CommunicationLayer/CommandProcess.py @@ -18,6 +18,7 @@ def __init__(self,popen_object:Popen,output:Output,timeout:Optional[int],success self.__retcode_queue:Queue[int] = Queue() self.success_value:int = success_value self.retcode:Optional[int] = None + self.error:Optional[Exception] = None self.process:Thread = self.__wait_async() #TODO: ignore ret codes and succes value and errors @@ -27,10 +28,13 @@ def wait_func(subprocess:Popen,queue:Queue,timeout:Optional[int]) -> None: try: retcode = subprocess.wait(timeout) queue.put(retcode) - except TimeoutExpired: + queue.put(None) + except TimeoutExpired as exc: #TODO: we can add some form of logging here to warn the user if something went wrong subprocess.terminate() queue.put(-1) + queue.put(exc) + def __wait_async(self) -> Thread: waiting_thread = Thread(target=self.wait_func,args=(self.__popen_object,self.__retcode_queue,self.__timeout)) @@ -43,10 +47,15 @@ def get_output(self) -> Output: # TODO: throw error when needed instead of the -1 def get_return_code(self) -> int: print(f'poll main: {self.__popen_object.poll()}') + if self.error is not None: + raise self.error if self.retcode: return self.retcode self.process.join() self.retcode = self.__retcode_queue.get() + self.error = self.__retcode_queue.get() + if self.error is not None: + raise self.error return self.retcode # TODO: check how this interacts with ssh diff --git a/benchkit/shell/shell.py b/benchkit/shell/shell.py index 90b4b869..31321177 100644 --- a/benchkit/shell/shell.py +++ b/benchkit/shell/shell.py @@ -256,6 +256,8 @@ def shell_out( # If ignore_ret_codes is empty we swap it over to None instead ignore_ret_codes=ignore_ret_codes if not any(True for _ in ignore_ret_codes) else None, ) + # this line is here to check if the program failed + process.get_return_code() # decode to turn bytestream of into the desired string # this can fail but is in line with original implementation From 38e7ea0c7c51b0079cd5e9e93cc538fe4534d725 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Sat, 7 Jun 2025 16:51:35 +0200 Subject: [PATCH 41/71] minor fixes for commandProcesses Signed-off-by: Bogaert Aaron --- tests/ast-shell/shell_tests/ast_shell.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py index 6970d33b..a12be337 100644 --- a/tests/ast-shell/shell_tests/ast_shell.py +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -52,7 +52,7 @@ def get_arguments_dict_list( class BasicShellTests(unittest.TestCase): - @unittest.skip("disabled for debugging") + # @unittest.skip("disabled for debugging") def test_echo(self): """Basic tests to see if the command-line can execute a given command and return the correct output given a range of arguments""" @@ -80,7 +80,7 @@ def test_echo(self): "shell does not provide the right output in the result", ) - @unittest.skip("disabled for debugging") + # @unittest.skip("disabled for debugging") def test_run_forever(self): """Test to make sure that commands do not exit prematurely""" argument_list = get_arguments_dict_list( @@ -94,7 +94,7 @@ def test_run_forever(self): for args in argument_list: with self.assertRaises(TestTimeout): with timeout(5): - shell_out(convert_command_to_ast(script_path_string("runForever")), **args) + shell_out(script_path_string("runForever"), **args) # @unittest.skip("disabled for debugging") def test_timeout(self): @@ -128,7 +128,7 @@ def test_timeout(self): with timeout(5): shell_out(script_path_string("runForever"), **args) - @unittest.skip("disabled for debugging") + # @unittest.skip("disabled for debugging") def test_input(self): """testing the use of the std_input parameter""" argument_list = get_arguments_dict_list( From 3c837ed2077ac8d6fd2780e3d2f1238799cc324c Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Sat, 7 Jun 2025 17:11:43 +0200 Subject: [PATCH 42/71] clean up the code and fix typing issues Signed-off-by: Bogaert Aaron --- .../CommunicationLayer/CommandProcess.py | 51 +++++--- .../shell/CommunicationLayer/IO_stream.py | 6 +- .../CommunicationLayer/hooks/basic_hooks.py | 23 ++-- .../shell/CommunicationLayer/hooks/hook.py | 5 +- benchkit/shell/ast_shell_out.py | 112 +++--------------- benchkit/shell/shell.py | 37 ++---- 6 files changed, 73 insertions(+), 161 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/CommandProcess.py b/benchkit/shell/CommunicationLayer/CommandProcess.py index 36f65ae9..64605331 100644 --- a/benchkit/shell/CommunicationLayer/CommandProcess.py +++ b/benchkit/shell/CommunicationLayer/CommandProcess.py @@ -1,59 +1,72 @@ +# Copyright (C) 2025 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT from __future__ import annotations # Otherwise Queue comlains about typing +import itertools from multiprocessing import Queue -from subprocess import Popen, TimeoutExpired +from subprocess import Popen, TimeoutExpired, CalledProcessError from threading import Thread -from time import sleep -from typing import Optional +from typing import Iterable, Optional, Tuple from benchkit.shell.CommunicationLayer.OutputObject import Output class CommandProcess(): - def __init__(self,popen_object:Popen,output:Output,timeout:Optional[int],success_value:int): - self.__popen_object:Popen = popen_object + def __init__(self, + popen_object:Popen[bytes], + output:Output, timeout:Optional[int], + success_code:int = 0, + ignore_exit_codes:Optional[Iterable[int]] = None): + + self.__popen_object:Popen[bytes] = popen_object self.__output:Output = output self.__timeout:Optional[int] = timeout - self.__retcode_queue:Queue[int] = Queue() - self.success_value:int = success_value + self.__retcode_queue:Queue[Tuple[int,Optional[Exception]]] = Queue() + self.success_code:int = success_code + self.ignore_exit_codes:Iterable[int] = (success_code,) if ignore_exit_codes is None else ignore_exit_codes + + # add the success_code to the return codes to ignore + if self.success_code not in self.ignore_exit_codes: + self.ignore_exit_codes = itertools.chain([success_code],self.ignore_exit_codes) + self.retcode:Optional[int] = None self.error:Optional[Exception] = None self.process:Thread = self.__wait_async() - #TODO: ignore ret codes and succes value and errors - @staticmethod - def wait_func(subprocess:Popen,queue:Queue,timeout:Optional[int]) -> None: + def wait_func(subprocess:Popen[bytes],queue:Queue[Tuple[int,Optional[Exception]]],timeout:Optional[int],ignore_exit_codes:Iterable[int]) -> None: try: retcode = subprocess.wait(timeout) - queue.put(retcode) - queue.put(None) + if retcode not in ignore_exit_codes: + queue.put((retcode, + CalledProcessError( + retcode, + subprocess.args, + ))) + else: + queue.put((retcode, None)) except TimeoutExpired as exc: #TODO: we can add some form of logging here to warn the user if something went wrong subprocess.terminate() - queue.put(-1) - queue.put(exc) + queue.put((-1,exc)) def __wait_async(self) -> Thread: - waiting_thread = Thread(target=self.wait_func,args=(self.__popen_object,self.__retcode_queue,self.__timeout)) + waiting_thread = Thread(target=self.wait_func,args=(self.__popen_object,self.__retcode_queue,self.__timeout,self.ignore_exit_codes)) waiting_thread.start() return waiting_thread def get_output(self) -> Output: return self.__output - # TODO: throw error when needed instead of the -1 def get_return_code(self) -> int: - print(f'poll main: {self.__popen_object.poll()}') if self.error is not None: raise self.error if self.retcode: return self.retcode self.process.join() - self.retcode = self.__retcode_queue.get() - self.error = self.__retcode_queue.get() + self.retcode,self.error = self.__retcode_queue.get() if self.error is not None: raise self.error return self.retcode diff --git a/benchkit/shell/CommunicationLayer/IO_stream.py b/benchkit/shell/CommunicationLayer/IO_stream.py index 67163126..e09c8475 100644 --- a/benchkit/shell/CommunicationLayer/IO_stream.py +++ b/benchkit/shell/CommunicationLayer/IO_stream.py @@ -3,11 +3,9 @@ import os from abc import ABC, abstractmethod -import sys from typing import IO class WritableIOStream(ABC): - @abstractmethod def write(self, bytes_to_write: bytes) -> None: pass @@ -65,7 +63,7 @@ def __init__(self,string:str,encoding:str="utf-8"): self.index = 0 super().__init__() - def _read_bytes(self, amount_of_bytes): + def _read_bytes(self, amount_of_bytes:int): if self.index + amount_of_bytes < self.length: return_byte_string = self.byte_string[self.index:self.index + amount_of_bytes] self.index += amount_of_bytes @@ -81,7 +79,7 @@ class EmptyIOStream(ReadableIOStream): def __init__(self): super().__init__() - def _read_bytes(self, _): + def _read_bytes(self, amount_of_bytes:int): return b'' diff --git a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py index 70f054a8..78b6591a 100644 --- a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py +++ b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MIT from multiprocessing import Queue -from typing import Optional +from typing import Any from benchkit.shell.CommunicationLayer.hooks.hook import ( IOReaderHook, @@ -12,12 +12,13 @@ ) from benchkit.shell.CommunicationLayer.IO_stream import ( ReadableIOStream, + WritableIOStream, try_converting_bystring_to_readable_characters, ) def create_voiding_result_hook() -> IOResultHook: - def hook_function(input_object: ReadableIOStream, _, result_queue: Queue): + def hook_function(input_object: ReadableIOStream, _:WritableIOStream, result_queue:Queue[Any]): # we do not write to the out stream thus this is "voiding" outlines: bytes = b"" outline = input_object.read(10) @@ -29,7 +30,7 @@ def hook_function(input_object: ReadableIOStream, _, result_queue: Queue): return IOResultHook(hook_function) -def create_stream_logger_hook(formating_string:str,bytes_to_log:Optional[int]=None) -> IOReaderHook: +def create_stream_line_logger_hook(formating_string:str) -> IOReaderHook: def hook_function_line(input_object: ReadableIOStream): byt = input_object.read_line() while byt: @@ -37,28 +38,22 @@ def hook_function_line(input_object: ReadableIOStream): byt = input_object.read_line() print(f"exited {formating_string.format('')}") - def hook_function_byte(input_object: ReadableIOStream): - byt = input_object.read(bytes_to_log) - while byt: - print(formating_string.format(f"{try_converting_bystring_to_readable_characters(byt)!r}")) - byt = input_object.read(bytes_to_log) - - return IOReaderHook(hook_function_line if bytes_to_log is None else hook_function_byte) + return IOReaderHook(hook_function_line) # TODO: Voiding can be done be done better but this will do for now # problem: if there are hooks on the output they will wait for input still # can be resolved by making use of EmptyIOStream # Needs to be done on a higher level than hooks -def void_input(input_object, _): +def void_input(input_object:ReadableIOStream, _:WritableIOStream): outline = input_object.read(10) while outline: outline = input_object.read(10) -def logger_hook(outformat,errformat): +def logger_line_hook(outformat:str,errformat:str): return OutputHook( - create_stream_logger_hook(outformat), - create_stream_logger_hook(errformat), + create_stream_line_logger_hook(outformat), + create_stream_line_logger_hook(errformat), ) diff --git a/benchkit/shell/CommunicationLayer/hooks/hook.py b/benchkit/shell/CommunicationLayer/hooks/hook.py index f540bae9..adde2298 100644 --- a/benchkit/shell/CommunicationLayer/hooks/hook.py +++ b/benchkit/shell/CommunicationLayer/hooks/hook.py @@ -5,7 +5,6 @@ from abc import ABC, abstractmethod from multiprocessing import Process, Queue -import signal from typing import Any, Callable from benchkit.shell.CommunicationLayer.IO_stream import EmptyIOStream, ReadableIOStream, PipeIOStream, WritableIOStream @@ -76,7 +75,7 @@ def start_hook_function(self, input_stream: ReadableIOStream) -> None: class IOResultHook(IOHook): - def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream, Queue], None]): + def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream, Queue[Any]], None]): self.__queue: Queue[Any] = Queue() self.hook_function = hook_function super().__init__() @@ -112,7 +111,7 @@ class MergeErrToOut(OutputHook): def __init__(self): self.std_out = PipeIOStream() - def hookfunction(self,input_object:ReadableIOStream,_): + def hookfunction(self,input_object:ReadableIOStream,_:WritableIOStream): outline = input_object.read_line() while outline: self.std_out.write(outline) diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 873fd6b1..4f0c5ffc 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -1,23 +1,17 @@ # Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. # SPDX-License-Identifier: MIT +# Otherwise os.PathLike[Any] complains +from __future__ import annotations + import os import pathlib -import shlex import subprocess -from typing import Dict, Iterable, List, Optional +from typing import Any, Dict, Iterable, List, Optional from benchkit.shell.CommunicationLayer.CommandProcess import CommandProcess from benchkit.shell.CommunicationLayer.hooks.hook import IOHook, IOWriterHook, OutputHook -from benchkit.shell.commandAST import command as makecommand -from benchkit.shell.commandAST.nodes.commandNodes import CommandNode -from benchkit.shell.commandAST.visitor import getString -from benchkit.shell.CommunicationLayer.hooks.basic_hooks import ( - logger_hook, - std_out_result_void_err, - void_hook, -) from benchkit.shell.CommunicationLayer.IO_stream import ( EmptyIOStream, ReadableIOStream, @@ -26,60 +20,30 @@ from benchkit.shell.CommunicationLayer.OutputObject import sshOutput def execute_command( - # needed for starting the command command: List[str], - current_dir: Optional[pathlib.Path | os.PathLike | str] = None, + current_dir: Optional[pathlib.Path | os.PathLike[Any] | str] = None, environment: Optional[Dict[str, str]] = None, - # needed for construction of output + # needed for construction and evaluation of output timeout: Optional[int] = None, ignore_ret_codes: Optional[Iterable[int]] = None, - success_value: int = 0, # New feature + success_value: int = 0, + # working with the IOStreams of the command std_input: Optional[ReadableIOStream] = None, ordered_input_hooks:Optional[List[IOHook]] = None, ordered_output_hooks:Optional[List[OutputHook]] = None, - - - # Some of the visual printing are not supported. - # Will probably swap over to a file based logging - # system for these larger amounts of additionaly information - - - print_command_start: bool = True, # Reworked feature - redirect_stderr_to_stdout: bool = True, # New feature - run_in_background=False, # New feature - output_is_log: bool = False, - - print_env: bool = True, # TEMPORARALY not suported - print_curdir: bool = True, # TEMPORARALY not suported - print_shell_cmd: bool = False, # TEMPORARALY not suported - print_file_shell_cmd: bool = True, # TEMPORARALY not suported ) -> CommandProcess: - # Use the visitor patterns to convert our tree to an executable string - - # command_string.insert(0, "exec") - shell_process = subprocess.Popen( - # why exec: - # we want to be able to use shell=True - # however this would make the shell the pid of the subprocess - # by using exec we can get make the command take over the pid of the shell - # this only works for POSIX (fixable for non posix by finding child) command, - # shell=True, cwd=current_dir, env=environment, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, ) - - # TODO:move to higher abstraction - # if print_command_start: - # print(f"\033[32m[START | {command_string}]\033[0m") try: if ordered_input_hooks is not None: if std_input is None: @@ -90,8 +54,7 @@ def execute_command( # hookfunction to write a ReadableIOStream to stdin - # TODO: check if we can turn this into a deafault external hook (shell_process is accesed by scope) - def pasalong(input_stream:ReadableIOStream,_) -> None: + def pasalong(input_stream:ReadableIOStream,_:WritableIOStream) -> None: if shell_process.stdin is not None: outline = input_stream.read(1) while outline: @@ -123,52 +86,11 @@ def pasalong(input_stream:ReadableIOStream,_) -> None: if shell_process.stdin is not None: shell_process.stdin.close() - return CommandProcess(shell_process,command_output,timeout,success_value) - - - - - if output_is_log: - command_output = logger_hook(command_string).attatch(command_output) - try: - if run_in_background: - void_hook().attatch(command_output) - # TODO: run_in_background makes it incompatible with timeout, this is fixable - # shell_process.wait(timeout=timeout) - print("pa") - return b"" - else: - output_hook_object, voiding_result_hook = std_out_result_void_err() - voiding_result_hook.attatch(command_output) - retcode = shell_process.wait(timeout=timeout) - output = output_hook_object.get_result() - - except subprocess.TimeoutExpired as err: - # killing this will send eof to and end the hooks aswell - shell_process.kill() - raise err - - - # not a sucsessfull execution and not an alowed exit code - # raise the appropriate error - if retcode not in ignore_ret_codes: - raise subprocess.CalledProcessError( - retcode, - shell_process.args, - ) - - return output - finally: - # If something goes wrong we try to clean up after ourself - # This can happen for example if we recieve a signal while waiting on an output - # TODO: dumbass this does not work with the "run_in_background argument" - pass - # try: - # if shell_process.stderr is not None: - # shell_process.stderr.close() - # if shell_process.stdout is not None: - # shell_process.stdout.close() - # finally: - # shell_process.terminate() - # # Wait allows the Popen process to cleanly terminate - # shell_process.wait(1) + return CommandProcess(shell_process,command_output,timeout,success_value,ignore_ret_codes) + + except: + # make sure the process is terminated for cleanup + # TODO: this needs some test cases + shell_process.terminate() + shell_process.wait() + raise \ No newline at end of file diff --git a/benchkit/shell/shell.py b/benchkit/shell/shell.py index 31321177..55c990c5 100644 --- a/benchkit/shell/shell.py +++ b/benchkit/shell/shell.py @@ -8,12 +8,11 @@ import signal import subprocess import sys -from time import sleep from typing import Iterable, List, Optional -from benchkit.shell.CommunicationLayer.hooks.basic_hooks import create_stream_logger_hook, logger_hook, std_out_result_void_err, void_hook, void_input -from benchkit.shell.CommunicationLayer.hooks.hook import IOWriterHook, MergeErrToOut -from benchkit.shell.commandAST import command as makecommand +from benchkit.shell.CommunicationLayer.CommandProcess import CommandProcess +from benchkit.shell.CommunicationLayer.hooks.basic_hooks import create_stream_line_logger_hook, logger_line_hook, std_out_result_void_err, void_hook +from benchkit.shell.CommunicationLayer.hooks.hook import IOHook, MergeErrToOut, OutputHook from benchkit.shell.ast_shell_out import execute_command from benchkit.shell.CommunicationLayer.IO_stream import ( EmptyIOStream, @@ -21,24 +20,10 @@ ReadableIOStream, StringIOStream, ) -from benchkit.shell.commandAST.nodes.commandNodes import CommandNode + from benchkit.shell.utils import get_args, print_header from benchkit.utils.types import Command, Environment, PathType -def convert_command_to_ast(command: str | List[str] | CommandNode) -> CommandNode: - if isinstance(command, str): - command_tree = makecommand.command(command) - elif isinstance(command, list): - command_tree = makecommand.command(shlex.join(command)) - elif isinstance(command, CommandNode): - command_tree = command - else: - raise TypeError( - f"Shell out was called with a command of type {type(command)}," - "this is unexpected and not suported" - ) - return command_tree - USE_NEW_SHELL = True @@ -65,19 +50,20 @@ def pipe_shell_out( str: the output of the piped command. """ i:ReadableIOStream = EmptyIOStream() - processes = [] + processes:List[CommandProcess] = [] for com in commands: command = shlex.split(com) if isinstance(com,str) else com command_string = shlex.join(command) - output_hooks = [] - log = logger_hook( + output_hooks:List[OutputHook] = [] + log = logger_line_hook( f"\033[34m[OUT | {command_string}]\033[0m" + " {}", f"\033[91m[ERR | {command_string}]\033[0m" + " {}" ) output_hooks.append(log) - input_hooks = [] + + input_hooks:List[IOHook] = [] - a = create_stream_logger_hook(f'input of {command_string} |' + ' {}') + a = create_stream_line_logger_hook(f'input of {command_string} |' + ' {}') input_hooks.append(a) print(f"\033[32m[START | {command_string}]\033[0m") process = execute_command( @@ -215,7 +201,7 @@ def shell_out( # convert string input to an IOStream std_input_io = StringIOStream(std_input) if std_input is not None else None - output_hooks = [] + output_hooks:List[OutputHook] = [] # add hook to log the output of the command # TODO: make this customizable @@ -252,7 +238,6 @@ def shell_out( environment=environment, timeout=timeout, ordered_output_hooks=output_hooks, - print_command_start=print_input, # If ignore_ret_codes is empty we swap it over to None instead ignore_ret_codes=ignore_ret_codes if not any(True for _ in ignore_ret_codes) else None, ) From fc3e4003c1fe65eb50d4dd006196a624c6fbfff6 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Sat, 7 Jun 2025 17:16:22 +0200 Subject: [PATCH 43/71] main flake errors fixed Signed-off-by: Bogaert Aaron --- .../CommunicationLayer/CommandProcess.py | 83 ++++++++++++------- .../shell/CommunicationLayer/IO_stream.py | 22 ++--- .../CommunicationLayer/hooks/basic_hooks.py | 18 ++-- .../shell/CommunicationLayer/hooks/hook.py | 30 +++++-- benchkit/shell/ast_shell_out.py | 28 ++++--- benchkit/shell/shell.py | 72 ++++++++-------- tests/ast-shell/shell_tests/ast_shell.py | 16 +--- tests/ast-shell/shell_tests/other_tests.py | 15 ++-- 8 files changed, 158 insertions(+), 126 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/CommandProcess.py b/benchkit/shell/CommunicationLayer/CommandProcess.py index 64605331..9fd0849e 100644 --- a/benchkit/shell/CommunicationLayer/CommandProcess.py +++ b/benchkit/shell/CommunicationLayer/CommandProcess.py @@ -5,55 +5,76 @@ import itertools from multiprocessing import Queue -from subprocess import Popen, TimeoutExpired, CalledProcessError +from subprocess import CalledProcessError, Popen, TimeoutExpired from threading import Thread from typing import Iterable, Optional, Tuple from benchkit.shell.CommunicationLayer.OutputObject import Output -class CommandProcess(): - def __init__(self, - popen_object:Popen[bytes], - output:Output, timeout:Optional[int], - success_code:int = 0, - ignore_exit_codes:Optional[Iterable[int]] = None): - - self.__popen_object:Popen[bytes] = popen_object - self.__output:Output = output - self.__timeout:Optional[int] = timeout - self.__retcode_queue:Queue[Tuple[int,Optional[Exception]]] = Queue() - self.success_code:int = success_code - self.ignore_exit_codes:Iterable[int] = (success_code,) if ignore_exit_codes is None else ignore_exit_codes +class CommandProcess: + def __init__( + self, + popen_object: Popen[bytes], + output: Output, + timeout: Optional[int], + success_code: int = 0, + ignore_exit_codes: Optional[Iterable[int]] = None, + ): + + self.__popen_object: Popen[bytes] = popen_object + self.__output: Output = output + self.__timeout: Optional[int] = timeout + self.__retcode_queue: Queue[Tuple[int, Optional[Exception]]] = Queue() + self.success_code: int = success_code + self.ignore_exit_codes: Iterable[int] = ( + (success_code,) if ignore_exit_codes is None else ignore_exit_codes + ) # add the success_code to the return codes to ignore if self.success_code not in self.ignore_exit_codes: - self.ignore_exit_codes = itertools.chain([success_code],self.ignore_exit_codes) + self.ignore_exit_codes = itertools.chain([success_code], self.ignore_exit_codes) - self.retcode:Optional[int] = None - self.error:Optional[Exception] = None - self.process:Thread = self.__wait_async() + self.retcode: Optional[int] = None + self.error: Optional[Exception] = None + self.process: Thread = self.__wait_async() @staticmethod - def wait_func(subprocess:Popen[bytes],queue:Queue[Tuple[int,Optional[Exception]]],timeout:Optional[int],ignore_exit_codes:Iterable[int]) -> None: + def wait_func( + subprocess: Popen[bytes], + queue: Queue[Tuple[int, Optional[Exception]]], + timeout: Optional[int], + ignore_exit_codes: Iterable[int], + ) -> None: try: retcode = subprocess.wait(timeout) if retcode not in ignore_exit_codes: - queue.put((retcode, - CalledProcessError( - retcode, - subprocess.args, - ))) + queue.put( + ( + retcode, + CalledProcessError( + retcode, + subprocess.args, + ), + ) + ) else: queue.put((retcode, None)) except TimeoutExpired as exc: - #TODO: we can add some form of logging here to warn the user if something went wrong + # TODO: we can add some form of logging here to warn the user if something went wrong subprocess.terminate() - queue.put((-1,exc)) - + queue.put((-1, exc)) def __wait_async(self) -> Thread: - waiting_thread = Thread(target=self.wait_func,args=(self.__popen_object,self.__retcode_queue,self.__timeout,self.ignore_exit_codes)) + waiting_thread = Thread( + target=self.wait_func, + args=( + self.__popen_object, + self.__retcode_queue, + self.__timeout, + self.ignore_exit_codes, + ), + ) waiting_thread.start() return waiting_thread @@ -66,13 +87,13 @@ def get_return_code(self) -> int: if self.retcode: return self.retcode self.process.join() - self.retcode,self.error = self.__retcode_queue.get() + self.retcode, self.error = self.__retcode_queue.get() if self.error is not None: raise self.error return self.retcode # TODO: check how this interacts with ssh # THIS DOES NOT SEND IT TO THE RIGHT ONE -> move abstraction higher - def signal(self,signalcode:int) -> None: + def signal(self, signalcode: int) -> None: self.__popen_object.send_signal(signalcode) - # self.__popen_object.wait(1) \ No newline at end of file + # self.__popen_object.wait(1) diff --git a/benchkit/shell/CommunicationLayer/IO_stream.py b/benchkit/shell/CommunicationLayer/IO_stream.py index e09c8475..4dd8f7c3 100644 --- a/benchkit/shell/CommunicationLayer/IO_stream.py +++ b/benchkit/shell/CommunicationLayer/IO_stream.py @@ -5,6 +5,7 @@ from abc import ABC, abstractmethod from typing import IO + class WritableIOStream(ABC): @abstractmethod def write(self, bytes_to_write: bytes) -> None: @@ -15,7 +16,6 @@ def endWriting(self) -> None: pass - class ReadableIOStream(ABC): """interface to communicate with command output on all platforms, functions are due to compatibility""" @@ -54,36 +54,36 @@ def __init__(self, stream: IO[bytes] | None): def _read_bytes(self, amount_of_bytes: int) -> bytes: if self.__stream: return self.__stream.read(amount_of_bytes) - return b's' + return b"s" + class StringIOStream(ReadableIOStream): - def __init__(self,string:str,encoding:str="utf-8"): + def __init__(self, string: str, encoding: str = "utf-8"): self.byte_string = string.encode(encoding) self.length = len(self.byte_string) self.index = 0 super().__init__() - def _read_bytes(self, amount_of_bytes:int): + def _read_bytes(self, amount_of_bytes: int): if self.index + amount_of_bytes < self.length: - return_byte_string = self.byte_string[self.index:self.index + amount_of_bytes] + return_byte_string = self.byte_string[self.index : self.index + amount_of_bytes] self.index += amount_of_bytes return return_byte_string else: - return_byte_string = self.byte_string[self.index:] - self.index=self.length + return_byte_string = self.byte_string[self.index :] + self.index = self.length return return_byte_string - class EmptyIOStream(ReadableIOStream): def __init__(self): super().__init__() - def _read_bytes(self, amount_of_bytes:int): - return b'' + def _read_bytes(self, amount_of_bytes: int): + return b"" -class PipeIOStream(ReadableIOStream,WritableIOStream): +class PipeIOStream(ReadableIOStream, WritableIOStream): """A way to create a fileStream that can be used as a CommandOutput by other functions""" def __init__(self) -> None: diff --git a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py index 78b6591a..904df57e 100644 --- a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py +++ b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py @@ -18,7 +18,9 @@ def create_voiding_result_hook() -> IOResultHook: - def hook_function(input_object: ReadableIOStream, _:WritableIOStream, result_queue:Queue[Any]): + def hook_function( + input_object: ReadableIOStream, _: WritableIOStream, result_queue: Queue[Any] + ): # we do not write to the out stream thus this is "voiding" outlines: bytes = b"" outline = input_object.read(10) @@ -30,35 +32,37 @@ def hook_function(input_object: ReadableIOStream, _:WritableIOStream, result_que return IOResultHook(hook_function) -def create_stream_line_logger_hook(formating_string:str) -> IOReaderHook: +def create_stream_line_logger_hook(formating_string: str) -> IOReaderHook: def hook_function_line(input_object: ReadableIOStream): byt = input_object.read_line() while byt: - print(formating_string.format(f"{try_converting_bystring_to_readable_characters(byt)}"),end="") + print( + formating_string.format(f"{try_converting_bystring_to_readable_characters(byt)}"), + end="", + ) byt = input_object.read_line() print(f"exited {formating_string.format('')}") return IOReaderHook(hook_function_line) + # TODO: Voiding can be done be done better but this will do for now # problem: if there are hooks on the output they will wait for input still # can be resolved by making use of EmptyIOStream # Needs to be done on a higher level than hooks -def void_input(input_object:ReadableIOStream, _:WritableIOStream): +def void_input(input_object: ReadableIOStream, _: WritableIOStream): outline = input_object.read(10) while outline: outline = input_object.read(10) -def logger_line_hook(outformat:str,errformat:str): +def logger_line_hook(outformat: str, errformat: str): return OutputHook( create_stream_line_logger_hook(outformat), create_stream_line_logger_hook(errformat), ) - - def void_hook(): return OutputHook(IOWriterHook(void_input), IOWriterHook(void_input)) diff --git a/benchkit/shell/CommunicationLayer/hooks/hook.py b/benchkit/shell/CommunicationLayer/hooks/hook.py index adde2298..aadb0eef 100644 --- a/benchkit/shell/CommunicationLayer/hooks/hook.py +++ b/benchkit/shell/CommunicationLayer/hooks/hook.py @@ -7,7 +7,12 @@ from multiprocessing import Process, Queue from typing import Any, Callable -from benchkit.shell.CommunicationLayer.IO_stream import EmptyIOStream, ReadableIOStream, PipeIOStream, WritableIOStream +from benchkit.shell.CommunicationLayer.IO_stream import ( + EmptyIOStream, + PipeIOStream, + ReadableIOStream, + WritableIOStream, +) from benchkit.shell.CommunicationLayer.OutputObject import Output @@ -29,7 +34,10 @@ def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream], Non super().__init__() def start_hook_function(self, input_stream: ReadableIOStream) -> None: - p = Process(target=self.hook_function, args=(input_stream, self._output),) + p = Process( + target=self.hook_function, + args=(input_stream, self._output), + ) p.start() # Close the file descriptor of the main thread, the one from the process will still be alive @@ -65,7 +73,10 @@ def start_hook_function(self, input_stream: ReadableIOStream) -> None: self._stream_duplicate, ), ) - reader_hook_process = Process(target=self.hook_function, args=(self._stream_duplicate,),) + reader_hook_process = Process( + target=self.hook_function, + args=(self._stream_duplicate,), + ) duplication_process.start() # Close the file descriptor of the main thread, the one from the process will still be alive @@ -81,7 +92,10 @@ def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream, Queu super().__init__() def start_hook_function(self, input_stream: ReadableIOStream) -> None: - p = Process(target=self.hook_function, args=(input_stream, self._output, self.__queue),) + p = Process( + target=self.hook_function, + args=(input_stream, self._output, self.__queue), + ) p.start() # Close the file descriptor of the main thread, the one from the process will still be alive @@ -107,22 +121,22 @@ def attatch(self, output: Output) -> Output: std_err = self._std_err_hook.get_outgoing_io_stream() return Output(std_out, std_err) + class MergeErrToOut(OutputHook): def __init__(self): self.std_out = PipeIOStream() - def hookfunction(self,input_object:ReadableIOStream,_:WritableIOStream): + def hookfunction(self, input_object: ReadableIOStream, _: WritableIOStream): outline = input_object.read_line() while outline: self.std_out.write(outline) outline = input_object.read_line() - - def attatch(self, output:Output) -> Output: + def attatch(self, output: Output) -> Output: stdout_hook = IOWriterHook(self.hookfunction) stderr_hook = IOWriterHook(self.hookfunction) stdout_hook.start_hook_function(output.std_out) stderr_hook.start_hook_function(output.std_err) self.std_out.endWriting() - return Output(self.std_out,EmptyIOStream()) \ No newline at end of file + return Output(self.std_out, EmptyIOStream()) diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 4f0c5ffc..f2fc3c30 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -7,11 +7,14 @@ import os import pathlib import subprocess - from typing import Any, Dict, Iterable, List, Optional from benchkit.shell.CommunicationLayer.CommandProcess import CommandProcess -from benchkit.shell.CommunicationLayer.hooks.hook import IOHook, IOWriterHook, OutputHook +from benchkit.shell.CommunicationLayer.hooks.hook import ( + IOHook, + IOWriterHook, + OutputHook, +) from benchkit.shell.CommunicationLayer.IO_stream import ( EmptyIOStream, ReadableIOStream, @@ -19,21 +22,20 @@ ) from benchkit.shell.CommunicationLayer.OutputObject import sshOutput + def execute_command( # needed for starting the command command: List[str], current_dir: Optional[pathlib.Path | os.PathLike[Any] | str] = None, environment: Optional[Dict[str, str]] = None, - # needed for construction and evaluation of output timeout: Optional[int] = None, ignore_ret_codes: Optional[Iterable[int]] = None, success_value: int = 0, - # working with the IOStreams of the command std_input: Optional[ReadableIOStream] = None, - ordered_input_hooks:Optional[List[IOHook]] = None, - ordered_output_hooks:Optional[List[OutputHook]] = None, + ordered_input_hooks: Optional[List[IOHook]] = None, + ordered_output_hooks: Optional[List[OutputHook]] = None, ) -> CommandProcess: shell_process = subprocess.Popen( @@ -52,9 +54,8 @@ def execute_command( inhook.start_hook_function(std_input) std_input = inhook.get_outgoing_io_stream() - # hookfunction to write a ReadableIOStream to stdin - def pasalong(input_stream:ReadableIOStream,_:WritableIOStream) -> None: + def pasalong(input_stream: ReadableIOStream, _: WritableIOStream) -> None: if shell_process.stdin is not None: outline = input_stream.read(1) while outline: @@ -63,7 +64,6 @@ def pasalong(input_stream:ReadableIOStream,_:WritableIOStream) -> None: outline = input_stream.read(1) shell_process.stdin.close() - # feeding the standard input into the command if std_input is not None: hook = IOWriterHook(pasalong) @@ -86,11 +86,13 @@ def pasalong(input_stream:ReadableIOStream,_:WritableIOStream) -> None: if shell_process.stdin is not None: shell_process.stdin.close() - return CommandProcess(shell_process,command_output,timeout,success_value,ignore_ret_codes) - - except: + return CommandProcess( + shell_process, command_output, timeout, success_value, ignore_ret_codes + ) + + except Exception: # make sure the process is terminated for cleanup # TODO: this needs some test cases shell_process.terminate() shell_process.wait() - raise \ No newline at end of file + raise diff --git a/benchkit/shell/shell.py b/benchkit/shell/shell.py index 55c990c5..9b08d30f 100644 --- a/benchkit/shell/shell.py +++ b/benchkit/shell/shell.py @@ -10,17 +10,25 @@ import sys from typing import Iterable, List, Optional -from benchkit.shell.CommunicationLayer.CommandProcess import CommandProcess -from benchkit.shell.CommunicationLayer.hooks.basic_hooks import create_stream_line_logger_hook, logger_line_hook, std_out_result_void_err, void_hook -from benchkit.shell.CommunicationLayer.hooks.hook import IOHook, MergeErrToOut, OutputHook from benchkit.shell.ast_shell_out import execute_command +from benchkit.shell.CommunicationLayer.CommandProcess import CommandProcess +from benchkit.shell.CommunicationLayer.hooks.basic_hooks import ( + create_stream_line_logger_hook, + logger_line_hook, + std_out_result_void_err, + void_hook, +) +from benchkit.shell.CommunicationLayer.hooks.hook import ( + IOHook, + MergeErrToOut, + OutputHook, +) from benchkit.shell.CommunicationLayer.IO_stream import ( EmptyIOStream, PipeIOStream, ReadableIOStream, StringIOStream, ) - from benchkit.shell.utils import get_args, print_header from benchkit.utils.types import Command, Environment, PathType @@ -49,25 +57,25 @@ def pipe_shell_out( Returns: str: the output of the piped command. """ - i:ReadableIOStream = EmptyIOStream() - processes:List[CommandProcess] = [] + i: ReadableIOStream = EmptyIOStream() + processes: List[CommandProcess] = [] for com in commands: - command = shlex.split(com) if isinstance(com,str) else com + command = shlex.split(com) if isinstance(com, str) else com command_string = shlex.join(command) - output_hooks:List[OutputHook] = [] + output_hooks: List[OutputHook] = [] log = logger_line_hook( - f"\033[34m[OUT | {command_string}]\033[0m" + " {}", - f"\033[91m[ERR | {command_string}]\033[0m" + " {}" - ) + f"\033[34m[OUT | {command_string}]\033[0m" + " {}", + f"\033[91m[ERR | {command_string}]\033[0m" + " {}", + ) output_hooks.append(log) - - input_hooks:List[IOHook] = [] - a = create_stream_line_logger_hook(f'input of {command_string} |' + ' {}') + input_hooks: List[IOHook] = [] + + a = create_stream_line_logger_hook(f"input of {command_string} |" + " {}") input_hooks.append(a) print(f"\033[32m[START | {command_string}]\033[0m") process = execute_command( - command = command, + command=command, std_input=i, current_dir=current_dir, ordered_output_hooks=output_hooks, @@ -83,8 +91,7 @@ def pipe_shell_out( for p in processes: print(p.get_return_code()) - - return '' + return "" arguments = get_args(command) if print_command: print_header( @@ -196,19 +203,19 @@ def shell_out( str: the output of the shell command that completed successfully. """ if USE_NEW_SHELL: - command = shlex.split(command) if isinstance(command,str) else command + command = shlex.split(command) if isinstance(command, str) else command command_string = shlex.join(command) # convert string input to an IOStream std_input_io = StringIOStream(std_input) if std_input is not None else None - output_hooks:List[OutputHook] = [] + output_hooks: List[OutputHook] = [] # add hook to log the output of the command # TODO: make this customizable if output_is_log: - log = logger_hook( + log = logger_line_hook( f"\033[34m[OUT | {command_string}]\033[0m" + " {}", - f"\033[91m[ERR | {command_string}]\033[0m" + " {}" + f"\033[91m[ERR | {command_string}]\033[0m" + " {}", ) output_hooks.append(log) @@ -232,7 +239,7 @@ def shell_out( output_hooks.append(void_hook()) process = execute_command( - command = command, + command=command, std_input=std_input_io, current_dir=current_dir, environment=environment, @@ -248,7 +255,6 @@ def shell_out( # this can fail but is in line with original implementation return output_hook_object.get_result().decode("utf-8") - arguments = get_args(command) print_header( arguments=arguments, @@ -362,7 +368,7 @@ def shell_interactive( ignore_ret_codes: Iterable[int] = (), ) -> None: if USE_NEW_SHELL: - command = shlex.split(command) if isinstance(command,str) else command + command = shlex.split(command) if isinstance(command, str) else command # convert string input to an IOStream std_input_io = PipeIOStream() @@ -370,7 +376,7 @@ def shell_interactive( # add hook to log the output of the command # TODO: make this customizable - log = logger_hook( + log = logger_line_hook( "> {}", "! {}", ) @@ -384,7 +390,7 @@ def shell_interactive( print(f"\033[32m[START | {shlex.join(command)}]\033[0m") process = execute_command( - command = command, + command=command, std_input=std_input_io, current_dir=current_dir, environment=environment, @@ -397,10 +403,12 @@ def shell_interactive( # We want that the first interupt signal # goes to the process we are interacting with original_sigint_handler = signal.getsignal(signal.SIGINT) + def signal_handler(sig, frame): process.signal(sig) # sys.stdin.close() signal.signal(signal.SIGINT, original_sigint_handler) + signal.signal(signal.SIGINT, signal_handler) # use our stdin as the interaction for the process @@ -416,22 +424,10 @@ def signal_handler(sig, frame): # Cleanly close the input file std_input_io.endWriting() - return None - - - - - - - - - - # TODO: return to this once we have a frame for the return value of shell_out_new - arguments = get_args(command) print_header( arguments=arguments, diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/ast-shell/shell_tests/ast_shell.py index a12be337..834908be 100644 --- a/tests/ast-shell/shell_tests/ast_shell.py +++ b/tests/ast-shell/shell_tests/ast_shell.py @@ -11,9 +11,6 @@ from shell_scripts import TestTimeout, script_path_string, timeout from benchkit.shell.shell import shell_out -from benchkit.shell.CommunicationLayer.IO_stream import ( - try_converting_bystring_to_readable_characters, -) # Due to print statements being inside of threads unittest does # not allow us to check the output of stdout. @@ -68,7 +65,7 @@ def test_echo(self): with timeout(1): # test echo with multiple parameters to make sure none mess up the result a = shell_out( - ['echo', 'benchkit_echo_test', str(args)], + ["echo", "benchkit_echo_test", str(args)], **args, ) print(a) @@ -170,9 +167,7 @@ def test_command_blocks_io_overfull(self): try: with timeout(20): # tests for filling the std_err - shell_out( - script_path_string("fillErrThenOut"), **args - ) + shell_out(script_path_string("fillErrThenOut"), **args) except TestTimeout: self.fail( f"the command got halted during excecution for \ @@ -183,15 +178,12 @@ def test_command_blocks_io_overfull(self): try: with timeout(20): # tests for filling the std_io - shell_out( - script_path_string("fillOutThenErr"), **args - ) + shell_out(script_path_string("fillOutThenErr"), **args) except TestTimeout: self.fail("the command got halted during excecution") raise TestTimeout - - #TODO: success value should be tested at lower abstraction level + # TODO: success value should be tested at lower abstraction level @unittest.skip("disabled for debugging") def test_ignore_return_codes(self): """Overfull internal IO buffers would halt the execution of the command diff --git a/tests/ast-shell/shell_tests/other_tests.py b/tests/ast-shell/shell_tests/other_tests.py index 5e7adc16..6c9c4580 100644 --- a/tests/ast-shell/shell_tests/other_tests.py +++ b/tests/ast-shell/shell_tests/other_tests.py @@ -5,9 +5,6 @@ import subprocess import sys -from benchkit.shell.CommunicationLayer.IO_stream import PipeIOStream, ReadableIOStream -from benchkit.shell.CommunicationLayer.hooks.basic_hooks import logger_hook, std_out_result_void_err -from benchkit.shell.shell import pipe_shell_out, shell_interactive, shell_out from shell_scripts import script_path_string from benchkit.shell.ast_shell_out import execute_command @@ -20,6 +17,12 @@ printAst, resolveAllVariablesWithDict, ) +from benchkit.shell.CommunicationLayer.hooks.basic_hooks import ( + logger_hook, + std_out_result_void_err, +) +from benchkit.shell.CommunicationLayer.IO_stream import PipeIOStream, ReadableIOStream +from benchkit.shell.shell import pipe_shell_out, shell_interactive, shell_out def commandtests(): @@ -160,9 +163,9 @@ def testhalt(): # command=['/home/aaronb/Documents/benchFork/benchkit/tests/ast-shell/shell_tests/shell_scripts/runForever.sh'], # command=['ssh', 'aaronb@soft24.vub.ac.be', 'sleep 10'], # command=['ls'], - command='/home/aaron/benchkitFork/benchkit/tests/ast-shell/shell_tests/shell_scripts/runForever.sh', + command="/home/aaron/benchkitFork/benchkit/tests/ast-shell/shell_tests/shell_scripts/runForever.sh", output_is_log=True, - timeout=5 + timeout=5, ) # pipe_shell_out( @@ -170,7 +173,7 @@ def testhalt(): # "/home/aaron/benchkitFork/benchkit/tests/ast-shell/shell_tests/shell_scripts/runForever.sh","cat" # ] # ) - print('a') + print("a") # print(a) # raw_output = shell_out( # command="/usr/bin/perf list --no-desc", From 3fb9969cdbd731c4c1761c469d77463bb59e9a12 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Mon, 9 Jun 2025 22:23:46 +0200 Subject: [PATCH 44/71] minor typing fix Signed-off-by: Bogaert Aaron --- benchkit/shell/CommunicationLayer/hooks/basic_hooks.py | 2 ++ benchkit/shell/ast_shell_out.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py index 904df57e..ac76c962 100644 --- a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py +++ b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py @@ -1,6 +1,8 @@ # Copyright (C) 2025 Vrije Universiteit Brussel. All rights reserved. # SPDX-License-Identifier: MIT +from __future__ import annotations # Otherwise Queue comlains about typing + from multiprocessing import Queue from typing import Any diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index f2fc3c30..3d208ca5 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -26,7 +26,8 @@ def execute_command( # needed for starting the command command: List[str], - current_dir: Optional[pathlib.Path | os.PathLike[Any] | str] = None, + # This dir can only be a path on the local machine + current_dir: Optional[pathlib.Path] = None, environment: Optional[Dict[str, str]] = None, # needed for construction and evaluation of output timeout: Optional[int] = None, From 32fe803755113356dab4d13cb9f9364f1245091d Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Tue, 10 Jun 2025 11:19:42 +0200 Subject: [PATCH 45/71] add tests for the command execution basics Signed-off-by: Bogaert Aaron --- tests/ast-shell/dependency-paths.txt | 2 - .../configure.sh | 0 tests/command_execution/dependency-paths.txt | 2 + .../execute_command}/ast_shell.py | 0 .../execute_command}/other_tests.py | 0 .../execute_command}/shell_scripts.py | 0 .../shell_scripts/fillErrThenOut.sh | 0 .../shell_scripts/fillOutThenErr.sh | 0 .../shell_scripts/returnExitCode.sh | 0 .../shell_scripts/runForever.sh | 0 .../shell_scripts/waitThenPrint.sh | 0 .../shell_scripts/writeBack.sh | 0 .../execute_command/test_execute_command.py | 227 ++++++++++++++++++ .../readme.md | 0 14 files changed, 229 insertions(+), 2 deletions(-) delete mode 100644 tests/ast-shell/dependency-paths.txt rename tests/{ast-shell => command_execution}/configure.sh (100%) create mode 100644 tests/command_execution/dependency-paths.txt rename tests/{ast-shell/shell_tests => command_execution/execute_command}/ast_shell.py (100%) rename tests/{ast-shell/shell_tests => command_execution/execute_command}/other_tests.py (100%) rename tests/{ast-shell/shell_tests => command_execution/execute_command}/shell_scripts.py (100%) rename tests/{ast-shell/shell_tests => command_execution/execute_command}/shell_scripts/fillErrThenOut.sh (100%) rename tests/{ast-shell/shell_tests => command_execution/execute_command}/shell_scripts/fillOutThenErr.sh (100%) rename tests/{ast-shell/shell_tests => command_execution/execute_command}/shell_scripts/returnExitCode.sh (100%) rename tests/{ast-shell/shell_tests => command_execution/execute_command}/shell_scripts/runForever.sh (100%) rename tests/{ast-shell/shell_tests => command_execution/execute_command}/shell_scripts/waitThenPrint.sh (100%) rename tests/{ast-shell/shell_tests => command_execution/execute_command}/shell_scripts/writeBack.sh (100%) create mode 100644 tests/command_execution/execute_command/test_execute_command.py rename tests/{ast-shell => command_execution}/readme.md (100%) diff --git a/tests/ast-shell/dependency-paths.txt b/tests/ast-shell/dependency-paths.txt deleted file mode 100644 index 311a08f0..00000000 --- a/tests/ast-shell/dependency-paths.txt +++ /dev/null @@ -1,2 +0,0 @@ -../../benchkit -./shell_tests \ No newline at end of file diff --git a/tests/ast-shell/configure.sh b/tests/command_execution/configure.sh similarity index 100% rename from tests/ast-shell/configure.sh rename to tests/command_execution/configure.sh diff --git a/tests/command_execution/dependency-paths.txt b/tests/command_execution/dependency-paths.txt new file mode 100644 index 00000000..cca6f8a0 --- /dev/null +++ b/tests/command_execution/dependency-paths.txt @@ -0,0 +1,2 @@ +../../benchkit +./execute_command \ No newline at end of file diff --git a/tests/ast-shell/shell_tests/ast_shell.py b/tests/command_execution/execute_command/ast_shell.py similarity index 100% rename from tests/ast-shell/shell_tests/ast_shell.py rename to tests/command_execution/execute_command/ast_shell.py diff --git a/tests/ast-shell/shell_tests/other_tests.py b/tests/command_execution/execute_command/other_tests.py similarity index 100% rename from tests/ast-shell/shell_tests/other_tests.py rename to tests/command_execution/execute_command/other_tests.py diff --git a/tests/ast-shell/shell_tests/shell_scripts.py b/tests/command_execution/execute_command/shell_scripts.py similarity index 100% rename from tests/ast-shell/shell_tests/shell_scripts.py rename to tests/command_execution/execute_command/shell_scripts.py diff --git a/tests/ast-shell/shell_tests/shell_scripts/fillErrThenOut.sh b/tests/command_execution/execute_command/shell_scripts/fillErrThenOut.sh similarity index 100% rename from tests/ast-shell/shell_tests/shell_scripts/fillErrThenOut.sh rename to tests/command_execution/execute_command/shell_scripts/fillErrThenOut.sh diff --git a/tests/ast-shell/shell_tests/shell_scripts/fillOutThenErr.sh b/tests/command_execution/execute_command/shell_scripts/fillOutThenErr.sh similarity index 100% rename from tests/ast-shell/shell_tests/shell_scripts/fillOutThenErr.sh rename to tests/command_execution/execute_command/shell_scripts/fillOutThenErr.sh diff --git a/tests/ast-shell/shell_tests/shell_scripts/returnExitCode.sh b/tests/command_execution/execute_command/shell_scripts/returnExitCode.sh similarity index 100% rename from tests/ast-shell/shell_tests/shell_scripts/returnExitCode.sh rename to tests/command_execution/execute_command/shell_scripts/returnExitCode.sh diff --git a/tests/ast-shell/shell_tests/shell_scripts/runForever.sh b/tests/command_execution/execute_command/shell_scripts/runForever.sh similarity index 100% rename from tests/ast-shell/shell_tests/shell_scripts/runForever.sh rename to tests/command_execution/execute_command/shell_scripts/runForever.sh diff --git a/tests/ast-shell/shell_tests/shell_scripts/waitThenPrint.sh b/tests/command_execution/execute_command/shell_scripts/waitThenPrint.sh similarity index 100% rename from tests/ast-shell/shell_tests/shell_scripts/waitThenPrint.sh rename to tests/command_execution/execute_command/shell_scripts/waitThenPrint.sh diff --git a/tests/ast-shell/shell_tests/shell_scripts/writeBack.sh b/tests/command_execution/execute_command/shell_scripts/writeBack.sh similarity index 100% rename from tests/ast-shell/shell_tests/shell_scripts/writeBack.sh rename to tests/command_execution/execute_command/shell_scripts/writeBack.sh diff --git a/tests/command_execution/execute_command/test_execute_command.py b/tests/command_execution/execute_command/test_execute_command.py new file mode 100644 index 00000000..0cc7aa39 --- /dev/null +++ b/tests/command_execution/execute_command/test_execute_command.py @@ -0,0 +1,227 @@ +import itertools +import os +import pathlib +from typing import Any, Dict, List, Optional, Tuple +import unittest + +from benchkit.shell.CommunicationLayer.IO_stream import ReadableIOStream, WritableIOStream +from benchkit.shell.CommunicationLayer.OutputObject import Output +from benchkit.shell.CommunicationLayer.hooks.basic_hooks import create_stream_line_logger_hook, create_voiding_result_hook, logger_line_hook, std_out_result_void_err, void_hook +from benchkit.shell.CommunicationLayer.hooks.hook import IOHook, IOResultHook, IOWriterHook, OutputHook +from benchkit.shell.ast_shell_out import execute_command + +def get_arguments_dict_list( + overwrite_arguments_dict: Dict[str, Any] | None = None, +): + if overwrite_arguments_dict is None: + overwrite_arguments_dict = {} + + arguments_dict:Dict[str,Any] = {} + + for argument_key in overwrite_arguments_dict: + arguments_dict[argument_key] = overwrite_arguments_dict[argument_key] + + keys:List[str] = [] + arguments:List[Any] = [] + + for key, arugments in arguments_dict.items(): + keys.append(key) + arguments += [arugments] + argument_permutations = itertools.product(*arguments) + result_list:List[Dict[str,Any]] = [] + for argument_permutation in list(argument_permutations): + result_list.append(dict(zip(keys, argument_permutation))) + return result_list + +def generate_test_hook_lists(force_output:bool=False,dont_void_output:bool=False) -> List[Tuple[List[IOHook],List[OutputHook],Optional[IOResultHook]]]: + + def useless_func(input_object: ReadableIOStream, output_object: WritableIOStream): + outline = input_object.read(10) + while outline: + output_object.write(outline) + outline = input_object.read(10) + + def gen_useless_input(): + return IOWriterHook(useless_func) + + def gen_logging_input(): + return create_stream_line_logger_hook("log_input" + " {}") + + def gen_useless_output(): + return OutputHook(IOWriterHook(useless_func),IOWriterHook(useless_func)) + + def gen_logging_output(): + return logger_line_hook( + "\033[34m[OUT | ]\033[0m" + " {}", + "\033[91m[ERR | ]\033[0m" + " {}", + ) + + def gen_result_output(): + output_hook_object = create_voiding_result_hook() + voiding_result_hook = OutputHook(output_hook_object,None) + return voiding_result_hook, output_hook_object + + hooklist:List[Tuple[List[IOHook],List[OutputHook],Optional[IOResultHook]]] = [] + + for option in itertools.product([True,False],[True,False],[True,False],[True,False],[True,False]): + output_hooks:List[OutputHook] = [] + input_hooks:List[IOHook] = [] + output_object = None + if option[0]: + input_hooks.append(gen_useless_input()) + if option[1]: + input_hooks.append(gen_logging_input()) + if option[2]: + output_hooks.append(gen_useless_output()) + if option[3]: + output_hooks.append(gen_logging_output()) + if option[4] or force_output: + hook, obj = gen_result_output() + output_object = obj + output_hooks.append(hook) + if not dont_void_output: + output_hooks.append(void_hook()) + + hooklist.append((input_hooks, output_hooks, output_object)) + return hooklist + + +class BasicShellTests(unittest.TestCase): + + @unittest.skip("disabled for debugging") + def test_echo(self) -> None: + """Basic tests to see if the command-line executes the command and can return output""" + + # standard arguments + arguments_list = get_arguments_dict_list( + { + 'current_dir':[None, pathlib.Path(__file__).parent.resolve(),pathlib.Path('/')], + 'environment':[None,{'test':'test'},{'a':'12','b':'11'},{}], + 'timeout':[None,1,10,99999999999], + 'ignore_ret_codes':[None,(1,),(1,7,),()], + } + ) + for arguments in arguments_list: + + # hook based argumens + hooklist = generate_test_hook_lists(force_output=True) + for input_hooks,output_hooks,result_hook_object in hooklist: + + # execution + execute_command( + ["echo", "benchkit_echo_test", str(arguments)], + ordered_output_hooks=output_hooks, + ordered_input_hooks=input_hooks, + **arguments, + ) + + # result gathering + output = result_hook_object.get_result() + expected_output = f"benchkit_echo_test {str(arguments)}\n".encode("utf-8") + self.assertEqual( + output, + expected_output, + "shell does not provide the right output in the result", + ) + + @unittest.skip("disabled for debugging") + def test_environment(self) -> None: + """Test to see if the env of the command is correcly set to the given env""" + + # standard arguments + arguments_list = get_arguments_dict_list( + { + 'current_dir':[None, pathlib.Path(__file__).parent.resolve(),pathlib.Path('/')], + 'environment':[None,{'test':'test'},{'a':'12','b':'11'},{}], + 'timeout':[None,1,10,99999999999], + 'ignore_ret_codes':[None,(1,),(1,7,),()], + } + ) + for arguments in arguments_list: + + # hook based argumens + hooklist = generate_test_hook_lists(force_output=True) + for input_hooks,output_hooks,result_hook_object in hooklist: + + # execution + execute_command( + ["env"], + ordered_output_hooks=output_hooks, + ordered_input_hooks=input_hooks, + **arguments, + ) + env = result_hook_object.get_result() + if arguments['environment']: + res ="" + for key,val in arguments['environment'].items(): + res += (f'{key}={val}\n') + res_bytes = res.encode('utf-8') + self.assertEqual( + env, + res_bytes, + "shell does not have the right env", + ) + if arguments['environment'] == {} or arguments['environment'] is None: + self.assertEqual( + env, + b'', + "shell does not have the right env", + ) + + def test_dir(self) -> None: + """Test to see if the correct directory is used when running commands""" + def expected_full_path(path_lib:pathlib.Path): + expected_path = os.getcwd() + path = str(path_lib) + while True: + if path.startswith('/'): + return path + if path.startswith('./'): + path = path.removeprefix('./') + if path.startswith('../'): + path = path.removeprefix('../') + expected_path = expected_path[:expected_path.rindex('/')] + else: + if path == '': + return expected_path + expected_path = expected_path + "/" + path + return expected_path + + # standard arguments + arguments_list = get_arguments_dict_list( + { + 'current_dir':[None, pathlib.Path(__file__).parent.resolve(),pathlib.Path('/')], + 'environment':[None,{'test':'test'},{'a':'12','b':'11'},{}], + 'timeout':[None,1,10,99999999999], + 'ignore_ret_codes':[None,(1,),(1,7,),()], + } + ) + for arguments in arguments_list: + # hook based argumens + hooklist = generate_test_hook_lists(force_output=True) + for input_hooks,output_hooks,result_hook_object in hooklist: + + # execution + execute_command( + ["pwd"], + ordered_output_hooks=output_hooks, + ordered_input_hooks=input_hooks, + **arguments, + ) + if arguments['current_dir'] is None: + arguments['current_dir'] = './' + + curr_dir = result_hook_object.get_result() + expected_path = expected_full_path(arguments['current_dir']) + self.assertEqual( + curr_dir, + f'{expected_path}\n'.encode('utf-8'), + "the paths do not match" + ) + + + + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/ast-shell/readme.md b/tests/command_execution/readme.md similarity index 100% rename from tests/ast-shell/readme.md rename to tests/command_execution/readme.md From 4211cffe94744c438a9c15794d3b805d005066b2 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Tue, 10 Jun 2025 11:20:49 +0200 Subject: [PATCH 46/71] make the environment empty by deafault Signed-off-by: Bogaert Aaron --- benchkit/shell/ast_shell_out.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 3d208ca5..977a7ecf 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -28,6 +28,9 @@ def execute_command( command: List[str], # This dir can only be a path on the local machine current_dir: Optional[pathlib.Path] = None, + + # TODO: the environment variable will start a process with only these env variables + # Do we want to add os.environ to this? environment: Optional[Dict[str, str]] = None, # needed for construction and evaluation of output timeout: Optional[int] = None, @@ -39,6 +42,9 @@ def execute_command( ordered_output_hooks: Optional[List[OutputHook]] = None, ) -> CommandProcess: + if environment is None: + environment = {} + shell_process = subprocess.Popen( command, cwd=current_dir, From 1f737cf39196cf862797fb9b79ec0ae369fc3f06 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Tue, 10 Jun 2025 15:48:22 +0200 Subject: [PATCH 47/71] finish the basic execute tests Signed-off-by: Bogaert Aaron --- .../execute_command/test_execute_command.py | 253 +++++++++++++----- 1 file changed, 190 insertions(+), 63 deletions(-) diff --git a/tests/command_execution/execute_command/test_execute_command.py b/tests/command_execution/execute_command/test_execute_command.py index 0cc7aa39..4691974d 100644 --- a/tests/command_execution/execute_command/test_execute_command.py +++ b/tests/command_execution/execute_command/test_execute_command.py @@ -1,13 +1,14 @@ import itertools import os import pathlib +from subprocess import CalledProcessError from typing import Any, Dict, List, Optional, Tuple import unittest -from benchkit.shell.CommunicationLayer.IO_stream import ReadableIOStream, WritableIOStream -from benchkit.shell.CommunicationLayer.OutputObject import Output -from benchkit.shell.CommunicationLayer.hooks.basic_hooks import create_stream_line_logger_hook, create_voiding_result_hook, logger_line_hook, std_out_result_void_err, void_hook +from benchkit.shell.CommunicationLayer.IO_stream import ReadableIOStream, StringIOStream, WritableIOStream +from benchkit.shell.CommunicationLayer.hooks.basic_hooks import create_stream_line_logger_hook, create_voiding_result_hook, logger_line_hook, void_hook from benchkit.shell.CommunicationLayer.hooks.hook import IOHook, IOResultHook, IOWriterHook, OutputHook +from shell_scripts import TestTimeout, script_path_string, timeout from benchkit.shell.ast_shell_out import execute_command def get_arguments_dict_list( @@ -106,22 +107,27 @@ def test_echo(self) -> None: # hook based argumens hooklist = generate_test_hook_lists(force_output=True) for input_hooks,output_hooks,result_hook_object in hooklist: - + try: # execution - execute_command( - ["echo", "benchkit_echo_test", str(arguments)], - ordered_output_hooks=output_hooks, - ordered_input_hooks=input_hooks, - **arguments, - ) - - # result gathering - output = result_hook_object.get_result() - expected_output = f"benchkit_echo_test {str(arguments)}\n".encode("utf-8") - self.assertEqual( - output, - expected_output, - "shell does not provide the right output in the result", + with timeout(5): + execute_command( + ["echo", "benchkit_echo_test", str(arguments)], + ordered_output_hooks=output_hooks, + ordered_input_hooks=input_hooks, + **arguments, + ) + + # result gathering + output = result_hook_object.get_result() + expected_output = f"benchkit_echo_test {str(arguments)}\n".encode("utf-8") + self.assertEqual( + output, + expected_output, + "shell does not provide the right output in the result", + ) + except TestTimeout: + self.fail( + "execution timed out" ) @unittest.skip("disabled for debugging") @@ -142,45 +148,59 @@ def test_environment(self) -> None: # hook based argumens hooklist = generate_test_hook_lists(force_output=True) for input_hooks,output_hooks,result_hook_object in hooklist: - + try: # execution - execute_command( - ["env"], - ordered_output_hooks=output_hooks, - ordered_input_hooks=input_hooks, - **arguments, - ) - env = result_hook_object.get_result() - if arguments['environment']: - res ="" - for key,val in arguments['environment'].items(): - res += (f'{key}={val}\n') - res_bytes = res.encode('utf-8') - self.assertEqual( - env, - res_bytes, - "shell does not have the right env", - ) - if arguments['environment'] == {} or arguments['environment'] is None: - self.assertEqual( - env, - b'', - "shell does not have the right env", + with timeout(5): + execute_command( + ["env"], + ordered_output_hooks=output_hooks, + ordered_input_hooks=input_hooks, + **arguments, + ) + env = result_hook_object.get_result() + if arguments['environment']: + res ="" + for key,val in arguments['environment'].items(): + res += (f'{key}={val}\n') + res_bytes = res.encode('utf-8') + self.assertEqual( + env, + res_bytes, + "shell does not have the right env", + ) + if arguments['environment'] == {} or arguments['environment'] is None: + self.assertEqual( + env, + b'', + "shell does not have the right env", + ) + except TestTimeout: + self.fail( + "execution timed out" ) + @unittest.skip("disabled for debugging") def test_dir(self) -> None: """Test to see if the correct directory is used when running commands""" def expected_full_path(path_lib:pathlib.Path): expected_path = os.getcwd() + print('----------------') + print(expected_path) path = str(path_lib) + print(path) while True: if path.startswith('/'): return path - if path.startswith('./'): - path = path.removeprefix('./') - if path.startswith('../'): + elif path.startswith('../'): path = path.removeprefix('../') expected_path = expected_path[:expected_path.rindex('/')] + elif path.startswith('..'): + path = path.removeprefix('..') + expected_path = expected_path[:expected_path.rindex('/')] + elif path.startswith('./'): + path = path.removeprefix('./') + elif path.startswith('.'): + path = path.removeprefix('.') else: if path == '': return expected_path @@ -190,7 +210,8 @@ def expected_full_path(path_lib:pathlib.Path): # standard arguments arguments_list = get_arguments_dict_list( { - 'current_dir':[None, pathlib.Path(__file__).parent.resolve(),pathlib.Path('/')], + 'current_dir':[None, pathlib.Path(__file__).parent.resolve(),pathlib.Path('/tmp'),pathlib.Path('./'),pathlib.Path('../../')], + # 'current_dir':[pathlib.Path('./'),pathlib.Path('../../')], 'environment':[None,{'test':'test'},{'a':'12','b':'11'},{}], 'timeout':[None,1,10,99999999999], 'ignore_ret_codes':[None,(1,),(1,7,),()], @@ -200,28 +221,134 @@ def expected_full_path(path_lib:pathlib.Path): # hook based argumens hooklist = generate_test_hook_lists(force_output=True) for input_hooks,output_hooks,result_hook_object in hooklist: - - # execution - execute_command( - ["pwd"], - ordered_output_hooks=output_hooks, - ordered_input_hooks=input_hooks, - **arguments, + try: + with timeout(5): + # execution + execute_command( + ["pwd"], + ordered_output_hooks=output_hooks, + ordered_input_hooks=input_hooks, + **arguments, + ) + if arguments['current_dir'] is None: + arguments['current_dir'] = './' + + curr_dir = result_hook_object.get_result() + expected_path = expected_full_path(arguments['current_dir']) + print('') + print(curr_dir) + print(f'{expected_path}\n'.encode('utf-8')) + + self.assertEqual( + curr_dir, + f'{expected_path}\n'.encode('utf-8'), + "the paths do not match" + ) + except TestTimeout: + self.fail( + "execution timed out" ) - if arguments['current_dir'] is None: - arguments['current_dir'] = './' - - curr_dir = result_hook_object.get_result() - expected_path = expected_full_path(arguments['current_dir']) - self.assertEqual( - curr_dir, - f'{expected_path}\n'.encode('utf-8'), - "the paths do not match" - ) - + @unittest.skip("disabled for debugging") + def test_ignore_ret_codes_are_ignored(self) -> None: + # standard arguments + arguments_list = get_arguments_dict_list( + { + 'current_dir':[None, pathlib.Path(__file__).parent.resolve(),pathlib.Path('/')], + 'environment':[None,{'test':'test'},{'a':'12','b':'11'},{}], + 'timeout':[None,1,10,99999999999], + "ignore_ret_codes": [ + (), + (1,4,), + (2, 7,), + (4,5,), + (63,), + (0,), + ], + } + ) + for arguments in arguments_list: + # hook based argumens + hooklist = generate_test_hook_lists() + for input_hooks,output_hooks,_ in hooklist: + + try: + with timeout(20): + retcode_to_output = ( + arguments["ignore_ret_codes"][len(arguments["ignore_ret_codes"]) - 1 % 3] + if len(arguments["ignore_ret_codes"]) > 0 + else 0 + ) + command_process = execute_command( + [script_path_string("returnExitCode")], + ordered_output_hooks=output_hooks, + ordered_input_hooks=input_hooks, + **arguments, + std_input=StringIOStream(f"{retcode_to_output}\n"), + ) + retcode = command_process.get_return_code() + self.assertEqual(retcode, + retcode_to_output, + "Mistake in the test wrong return code was returned by programm") + except TestTimeout: + self.fail( + "execution timed out" + ) + except CalledProcessError: + self.fail( + f"process trew an error with retcode {retcode_to_output} and ignored list {arguments["ignore_ret_codes"]}" + ) + # @unittest.skip("disabled for debugging") + def test_ignore_ret_codes_dont_ignore_other(self) -> None: + # standard arguments + arguments_list = get_arguments_dict_list( + { + 'current_dir':[None, pathlib.Path(__file__).parent.resolve(),pathlib.Path('/')], + 'environment':[None,{'test':'test'},{'a':'12','b':'11'},{}], + 'timeout':[None,1,10,99999999999], + "ignore_ret_codes": [ + (), + (2, 7,), + (63,), + (0,), + ], + "success_value": [0, 1, 53, 19], + } + ) + for arguments in arguments_list: + # hook based argumens + hooklist = generate_test_hook_lists() + for input_hooks,output_hooks,_ in hooklist: + try: + retcode_to_output = ( + 3 + + arguments["success_value"] + + ( + arguments["ignore_ret_codes"][len(arguments["ignore_ret_codes"]) - 1 % 3] + if len(arguments["ignore_ret_codes"]) > 0 + else arguments["success_value"] + ) + ) + with self.assertRaises(CalledProcessError, + msg=f"process did not trow an error with retcode {retcode_to_output}, ignored list {arguments["ignore_ret_codes"]} and succes value {arguments['success_value']}"): + with timeout(20): + command_process = execute_command( + [script_path_string("returnExitCode")], + ordered_output_hooks=output_hooks, + ordered_input_hooks=input_hooks, + **arguments, + std_input=StringIOStream(f"{retcode_to_output}\n"), + ) + retcode = command_process.get_return_code() + self.assertEqual(retcode, + retcode_to_output, + "Mistake in the test wrong return code was returned by programm") + except TestTimeout: + self.fail( + "execution timed out" + ) if __name__ == "__main__": unittest.main() From 1ac378194aa6e34f5a1730d0a9d1c91f037b92dd Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Tue, 10 Jun 2025 16:05:26 +0200 Subject: [PATCH 48/71] rename and add start of std_input test Signed-off-by: Bogaert Aaron --- ...nd.py => test_execute_command_function.py} | 45 ++++++++++++++++--- .../test_execute_command_runtime.py | 0 2 files changed, 40 insertions(+), 5 deletions(-) rename tests/command_execution/execute_command/{test_execute_command.py => test_execute_command_function.py} (90%) create mode 100644 tests/command_execution/execute_command/test_execute_command_runtime.py diff --git a/tests/command_execution/execute_command/test_execute_command.py b/tests/command_execution/execute_command/test_execute_command_function.py similarity index 90% rename from tests/command_execution/execute_command/test_execute_command.py rename to tests/command_execution/execute_command/test_execute_command_function.py index 4691974d..f52b2b12 100644 --- a/tests/command_execution/execute_command/test_execute_command.py +++ b/tests/command_execution/execute_command/test_execute_command_function.py @@ -184,10 +184,7 @@ def test_dir(self) -> None: """Test to see if the correct directory is used when running commands""" def expected_full_path(path_lib:pathlib.Path): expected_path = os.getcwd() - print('----------------') - print(expected_path) path = str(path_lib) - print(path) while True: if path.startswith('/'): return path @@ -211,7 +208,6 @@ def expected_full_path(path_lib:pathlib.Path): arguments_list = get_arguments_dict_list( { 'current_dir':[None, pathlib.Path(__file__).parent.resolve(),pathlib.Path('/tmp'),pathlib.Path('./'),pathlib.Path('../../')], - # 'current_dir':[pathlib.Path('./'),pathlib.Path('../../')], 'environment':[None,{'test':'test'},{'a':'12','b':'11'},{}], 'timeout':[None,1,10,99999999999], 'ignore_ret_codes':[None,(1,),(1,7,),()], @@ -250,6 +246,45 @@ def expected_full_path(path_lib:pathlib.Path): ) + # @unittest.skip("disabled for debugging") + def test_input(self): + """testing the use of the std_input parameter""" + # standard arguments + arguments_list = get_arguments_dict_list( + { + 'current_dir':[None, pathlib.Path(__file__).parent.resolve(),pathlib.Path('/')], + 'environment':[None,{'test':'test'},{'a':'12','b':'11'},{}], + 'timeout':[None,1,10,99999999999], + 'ignore_ret_codes':[None,(1,),(1,7,),()], + } + ) + for arguments in arguments_list: + + # hook based argumens + hooklist = generate_test_hook_lists(force_output=True) + for input_hooks,output_hooks,result_hook_object in hooklist: + try: + # execution + with timeout(5): + execute_command( + [script_path_string("writeBack")], + std_input=StringIOStream(f"benchkit input test {str(arguments)}\n"), + ordered_input_hooks=input_hooks, + ordered_output_hooks=output_hooks, + **arguments, + ) + out = result_hook_object.get_result() + self.assertEqual( + out, + f"benchkit input test {str(arguments)}\n", + f"recieved{out}", + ) + except TestTimeout: + self.fail( + "execution timed out" + ) + + @unittest.skip("disabled for debugging") def test_ignore_ret_codes_are_ignored(self) -> None: # standard arguments @@ -300,7 +335,7 @@ def test_ignore_ret_codes_are_ignored(self) -> None: f"process trew an error with retcode {retcode_to_output} and ignored list {arguments["ignore_ret_codes"]}" ) - # @unittest.skip("disabled for debugging") + @unittest.skip("disabled for debugging") def test_ignore_ret_codes_dont_ignore_other(self) -> None: # standard arguments arguments_list = get_arguments_dict_list( diff --git a/tests/command_execution/execute_command/test_execute_command_runtime.py b/tests/command_execution/execute_command/test_execute_command_runtime.py new file mode 100644 index 00000000..e69de29b From 7a0164c662f72d398a1aeff3f7846120787b42cc Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Wed, 11 Jun 2025 11:49:55 +0200 Subject: [PATCH 49/71] added aditional tests Signed-off-by: Bogaert Aaron --- .../execute_command/ast_shell.py | 2 +- .../execute_command/other_tests.py | 2 +- .../execute_command/shell_scripts.py | 33 ----- .../test_execute_command_function.py | 107 ++-------------- .../test_execute_command_runtime.py | 118 ++++++++++++++++++ .../command_execution/execute_command/util.py | 114 +++++++++++++++++ 6 files changed, 246 insertions(+), 130 deletions(-) delete mode 100644 tests/command_execution/execute_command/shell_scripts.py create mode 100644 tests/command_execution/execute_command/util.py diff --git a/tests/command_execution/execute_command/ast_shell.py b/tests/command_execution/execute_command/ast_shell.py index 834908be..05379f55 100644 --- a/tests/command_execution/execute_command/ast_shell.py +++ b/tests/command_execution/execute_command/ast_shell.py @@ -8,7 +8,7 @@ import unittest from typing import Any -from shell_scripts import TestTimeout, script_path_string, timeout +from tests.command_execution.execute_command.util import TestTimeout, script_path_string, timeout from benchkit.shell.shell import shell_out diff --git a/tests/command_execution/execute_command/other_tests.py b/tests/command_execution/execute_command/other_tests.py index 6c9c4580..f2e707db 100644 --- a/tests/command_execution/execute_command/other_tests.py +++ b/tests/command_execution/execute_command/other_tests.py @@ -5,7 +5,7 @@ import subprocess import sys -from shell_scripts import script_path_string +from tests.command_execution.execute_command.util import script_path_string from benchkit.shell.ast_shell_out import execute_command from benchkit.shell.commandAST import command as makecommand diff --git a/tests/command_execution/execute_command/shell_scripts.py b/tests/command_execution/execute_command/shell_scripts.py deleted file mode 100644 index 3af4751f..00000000 --- a/tests/command_execution/execute_command/shell_scripts.py +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright (C) 2025 Vrije Universiteit Brussel. All rights reserved. -# SPDX-License-Identifier: MIT - -import pathlib -import signal - - -class TestTimeout(Exception): - pass - - -class timeout: - def __init__(self, seconds, error_message=None): - if error_message is None: - error_message = "test timed out after {}s.".format(seconds) - self.seconds = seconds - self.error_message = error_message - - def handle_timeout(self, signum, frame): - raise TestTimeout(self.error_message) - - def __enter__(self): - signal.signal(signal.SIGALRM, self.handle_timeout) - signal.alarm(self.seconds) - - def __exit__(self, exc_type, exc_val, exc_tb): - signal.alarm(0) - - -def script_path_string(script_name: str): - folder = pathlib.Path(__file__).parent.resolve() - print(folder) - return str(folder / f"./shell_scripts/{script_name}.sh") diff --git a/tests/command_execution/execute_command/test_execute_command_function.py b/tests/command_execution/execute_command/test_execute_command_function.py index f52b2b12..c659e78a 100644 --- a/tests/command_execution/execute_command/test_execute_command_function.py +++ b/tests/command_execution/execute_command/test_execute_command_function.py @@ -1,95 +1,15 @@ -import itertools import os import pathlib from subprocess import CalledProcessError -from typing import Any, Dict, List, Optional, Tuple import unittest -from benchkit.shell.CommunicationLayer.IO_stream import ReadableIOStream, StringIOStream, WritableIOStream -from benchkit.shell.CommunicationLayer.hooks.basic_hooks import create_stream_line_logger_hook, create_voiding_result_hook, logger_line_hook, void_hook -from benchkit.shell.CommunicationLayer.hooks.hook import IOHook, IOResultHook, IOWriterHook, OutputHook -from shell_scripts import TestTimeout, script_path_string, timeout +from benchkit.shell.CommunicationLayer.IO_stream import StringIOStream +from tests.command_execution.execute_command.util import TestTimeout, generate_test_hook_lists, get_arguments_dict_list, script_path_string, timeout from benchkit.shell.ast_shell_out import execute_command -def get_arguments_dict_list( - overwrite_arguments_dict: Dict[str, Any] | None = None, -): - if overwrite_arguments_dict is None: - overwrite_arguments_dict = {} +class FunctionalExecutionTests(unittest.TestCase): - arguments_dict:Dict[str,Any] = {} - - for argument_key in overwrite_arguments_dict: - arguments_dict[argument_key] = overwrite_arguments_dict[argument_key] - - keys:List[str] = [] - arguments:List[Any] = [] - - for key, arugments in arguments_dict.items(): - keys.append(key) - arguments += [arugments] - argument_permutations = itertools.product(*arguments) - result_list:List[Dict[str,Any]] = [] - for argument_permutation in list(argument_permutations): - result_list.append(dict(zip(keys, argument_permutation))) - return result_list - -def generate_test_hook_lists(force_output:bool=False,dont_void_output:bool=False) -> List[Tuple[List[IOHook],List[OutputHook],Optional[IOResultHook]]]: - - def useless_func(input_object: ReadableIOStream, output_object: WritableIOStream): - outline = input_object.read(10) - while outline: - output_object.write(outline) - outline = input_object.read(10) - - def gen_useless_input(): - return IOWriterHook(useless_func) - - def gen_logging_input(): - return create_stream_line_logger_hook("log_input" + " {}") - - def gen_useless_output(): - return OutputHook(IOWriterHook(useless_func),IOWriterHook(useless_func)) - - def gen_logging_output(): - return logger_line_hook( - "\033[34m[OUT | ]\033[0m" + " {}", - "\033[91m[ERR | ]\033[0m" + " {}", - ) - - def gen_result_output(): - output_hook_object = create_voiding_result_hook() - voiding_result_hook = OutputHook(output_hook_object,None) - return voiding_result_hook, output_hook_object - - hooklist:List[Tuple[List[IOHook],List[OutputHook],Optional[IOResultHook]]] = [] - - for option in itertools.product([True,False],[True,False],[True,False],[True,False],[True,False]): - output_hooks:List[OutputHook] = [] - input_hooks:List[IOHook] = [] - output_object = None - if option[0]: - input_hooks.append(gen_useless_input()) - if option[1]: - input_hooks.append(gen_logging_input()) - if option[2]: - output_hooks.append(gen_useless_output()) - if option[3]: - output_hooks.append(gen_logging_output()) - if option[4] or force_output: - hook, obj = gen_result_output() - output_object = obj - output_hooks.append(hook) - if not dont_void_output: - output_hooks.append(void_hook()) - - hooklist.append((input_hooks, output_hooks, output_object)) - return hooklist - - -class BasicShellTests(unittest.TestCase): - - @unittest.skip("disabled for debugging") + # @unittest.skip("disabled for debugging") def test_echo(self) -> None: """Basic tests to see if the command-line executes the command and can return output""" @@ -130,7 +50,7 @@ def test_echo(self) -> None: "execution timed out" ) - @unittest.skip("disabled for debugging") + # @unittest.skip("disabled for debugging") def test_environment(self) -> None: """Test to see if the env of the command is correcly set to the given env""" @@ -179,7 +99,7 @@ def test_environment(self) -> None: "execution timed out" ) - @unittest.skip("disabled for debugging") + # @unittest.skip("disabled for debugging") def test_dir(self) -> None: """Test to see if the correct directory is used when running commands""" def expected_full_path(path_lib:pathlib.Path): @@ -231,10 +151,6 @@ def expected_full_path(path_lib:pathlib.Path): curr_dir = result_hook_object.get_result() expected_path = expected_full_path(arguments['current_dir']) - print('') - print(curr_dir) - print(f'{expected_path}\n'.encode('utf-8')) - self.assertEqual( curr_dir, f'{expected_path}\n'.encode('utf-8'), @@ -274,9 +190,10 @@ def test_input(self): **arguments, ) out = result_hook_object.get_result() + self.assertEqual( out, - f"benchkit input test {str(arguments)}\n", + f"benchkit input test {str(arguments)}\n".encode('utf-8'), f"recieved{out}", ) except TestTimeout: @@ -285,7 +202,7 @@ def test_input(self): ) - @unittest.skip("disabled for debugging") + # @unittest.skip("disabled for debugging") def test_ignore_ret_codes_are_ignored(self) -> None: # standard arguments arguments_list = get_arguments_dict_list( @@ -332,10 +249,10 @@ def test_ignore_ret_codes_are_ignored(self) -> None: ) except CalledProcessError: self.fail( - f"process trew an error with retcode {retcode_to_output} and ignored list {arguments["ignore_ret_codes"]}" + f"process trew an error with retcode {retcode_to_output} and ignored list {arguments['ignore_ret_codes']}" ) - @unittest.skip("disabled for debugging") + # @unittest.skip("disabled for debugging") def test_ignore_ret_codes_dont_ignore_other(self) -> None: # standard arguments arguments_list = get_arguments_dict_list( @@ -367,7 +284,7 @@ def test_ignore_ret_codes_dont_ignore_other(self) -> None: ) ) with self.assertRaises(CalledProcessError, - msg=f"process did not trow an error with retcode {retcode_to_output}, ignored list {arguments["ignore_ret_codes"]} and succes value {arguments['success_value']}"): + msg=f"process did not trow an error with retcode {retcode_to_output}, ignored list {arguments['ignore_ret_codes']} and succes value {arguments['success_value']}"): with timeout(20): command_process = execute_command( [script_path_string("returnExitCode")], diff --git a/tests/command_execution/execute_command/test_execute_command_runtime.py b/tests/command_execution/execute_command/test_execute_command_runtime.py index e69de29b..f71fd0c8 100644 --- a/tests/command_execution/execute_command/test_execute_command_runtime.py +++ b/tests/command_execution/execute_command/test_execute_command_runtime.py @@ -0,0 +1,118 @@ + + +import pathlib +from subprocess import TimeoutExpired +import tracemalloc +import unittest +from benchkit.shell.ast_shell_out import execute_command +from tests.command_execution.execute_command.util import TestTimeout, generate_test_hook_lists, get_arguments_dict_list, script_path_string, timeout + +tracemalloc.start() + +class RuntimeExecutionTests(unittest.TestCase): + + # @unittest.skip("disabled for debugging") + def test_timeout(self) -> None: + """test to see if the command times out after the given time period""" + + # standard arguments + arguments_list = get_arguments_dict_list( + { + 'current_dir':[None, pathlib.Path(__file__).parent.resolve(),pathlib.Path('/')], + 'environment':[None,{'test':'test'},{'a':'12','b':'11'},{}], + 'timeout':[2], + 'ignore_ret_codes':[None,(1,),(1,7,),()], + } + ) + for arguments in arguments_list: + # hook based argumens + hooklist = generate_test_hook_lists() + for input_hooks,output_hooks,_ in hooklist: + try: + # execution + with timeout(20): + with self.assertRaises(TimeoutExpired): + p = execute_command( + [script_path_string("runForever")], + ordered_output_hooks=output_hooks, + ordered_input_hooks=input_hooks, + **arguments, + ) + + # result gathering + p.get_return_code() + + except TestTimeout: + self.fail( + "execution timed out, but not by the timeout argument" + ) + + # @unittest.skip("disabled for debugging") + def test_fill_std_err(self) -> None: + """test to see if the command times out after the given time period""" + + # standard arguments + arguments_list = get_arguments_dict_list( + { + 'current_dir':[None, pathlib.Path(__file__).parent.resolve(),pathlib.Path('/')], + 'environment':[None,{'test':'test'},{'a':'12','b':'11'},{}], + 'timeout':[None,20,99999999999], + 'ignore_ret_codes':[None,(1,),(1,7,),()], + } + ) + for arguments in arguments_list: + # hook based argumens + hooklist = generate_test_hook_lists() + for input_hooks,output_hooks,_ in hooklist: + try: + # execution + with timeout(22): + p = execute_command( + [script_path_string("fillOutThenErr")], + ordered_output_hooks=output_hooks, + ordered_input_hooks=input_hooks, + **arguments, + ) + + # result gathering + p.get_return_code() + + except TestTimeout: + self.fail( + "execution timed out" + ) + + # @unittest.skip("disabled for debugging") + def test_fill_std_out(self) -> None: + """test to see if the command times out after the given time period""" + + # standard arguments + arguments_list = get_arguments_dict_list( + { + 'current_dir':[None, pathlib.Path(__file__).parent.resolve(),pathlib.Path('/')], + 'environment':[None,{'test':'test'},{'a':'12','b':'11'},{}], + 'timeout':[None,20,99999999999], + 'ignore_ret_codes':[None,(1,),(1,7,),()], + } + ) + for arguments in arguments_list: + # hook based argumens + hooklist = generate_test_hook_lists() + for input_hooks,output_hooks,_ in hooklist: + try: + # execution + with timeout(22): + p = execute_command( + [script_path_string("fillErrThenOut")], + ordered_output_hooks=output_hooks, + ordered_input_hooks=input_hooks, + **arguments, + ) + + # result gathering + p.get_return_code() + + except TestTimeout: + self.fail( + "execution timed out" + ) diff --git a/tests/command_execution/execute_command/util.py b/tests/command_execution/execute_command/util.py new file mode 100644 index 00000000..952ecd06 --- /dev/null +++ b/tests/command_execution/execute_command/util.py @@ -0,0 +1,114 @@ +# Copyright (C) 2025 Vrije Universiteit Brussel. All rights reserved. +# SPDX-License-Identifier: MIT + +import itertools +import pathlib +import signal +from typing import Any, Dict, List, Optional, Tuple + +from benchkit.shell.CommunicationLayer.IO_stream import ReadableIOStream, WritableIOStream +from benchkit.shell.CommunicationLayer.hooks.basic_hooks import create_stream_line_logger_hook, create_voiding_result_hook, logger_line_hook, void_hook +from benchkit.shell.CommunicationLayer.hooks.hook import IOHook, IOResultHook, IOWriterHook, OutputHook + + +class TestTimeout(Exception): + pass + + +class timeout: + def __init__(self, seconds:int, error_message:Optional[str]=None): + if error_message is None: + error_message = "test timed out after {}s.".format(seconds) + self.seconds = seconds + self.error_message = error_message + + def handle_timeout(self, signum, frame): + raise TestTimeout(self.error_message) + + def __enter__(self): + signal.signal(signal.SIGALRM, self.handle_timeout) + signal.alarm(self.seconds) + + def __exit__(self, exc_type, exc_val, exc_tb): + signal.alarm(0) + + +def script_path_string(script_name: str): + folder = pathlib.Path(__file__).parent.resolve() + print(folder) + return str(folder / f"./shell_scripts/{script_name}.sh") + +def get_arguments_dict_list( + overwrite_arguments_dict: Dict[str, Any] | None = None, +): + if overwrite_arguments_dict is None: + overwrite_arguments_dict = {} + + arguments_dict:Dict[str,Any] = {} + + for argument_key in overwrite_arguments_dict: + arguments_dict[argument_key] = overwrite_arguments_dict[argument_key] + + keys:List[str] = [] + arguments:List[Any] = [] + + for key, arugments in arguments_dict.items(): + keys.append(key) + arguments += [arugments] + argument_permutations = itertools.product(*arguments) + result_list:List[Dict[str,Any]] = [] + for argument_permutation in list(argument_permutations): + result_list.append(dict(zip(keys, argument_permutation))) + return result_list + +def generate_test_hook_lists(force_output:bool=False,dont_void_output:bool=False) -> List[Tuple[List[IOHook],List[OutputHook],Optional[IOResultHook]]]: + + def useless_func(input_object: ReadableIOStream, output_object: WritableIOStream): + outline = input_object.read(10) + while outline: + output_object.write(outline) + outline = input_object.read(10) + + def gen_useless_input(): + return IOWriterHook(useless_func) + + def gen_logging_input(): + return create_stream_line_logger_hook("log_input" + " {}") + + def gen_useless_output(): + return OutputHook(IOWriterHook(useless_func),IOWriterHook(useless_func)) + + def gen_logging_output(): + return logger_line_hook( + "\033[34m[OUT | ]\033[0m" + " {}", + "\033[91m[ERR | ]\033[0m" + " {}", + ) + + def gen_result_output(): + output_hook_object = create_voiding_result_hook() + voiding_result_hook = OutputHook(output_hook_object,None) + return voiding_result_hook, output_hook_object + + hooklist:List[Tuple[List[IOHook],List[OutputHook],Optional[IOResultHook]]] = [] + + for option in itertools.product([True,False],[True,False],[True,False],[True,False],[True,False]): + output_hooks:List[OutputHook] = [] + input_hooks:List[IOHook] = [] + output_object = None + if option[0]: + input_hooks.append(gen_useless_input()) + if option[1]: + input_hooks.append(gen_logging_input()) + if option[2]: + output_hooks.append(gen_useless_output()) + if option[3]: + output_hooks.append(gen_logging_output()) + if option[4] or force_output: + hook, obj = gen_result_output() + output_object = obj + output_hooks.append(hook) + if not dont_void_output: + output_hooks.append(void_hook()) + + hooklist.append((input_hooks, output_hooks, output_object)) + return hooklist \ No newline at end of file From 45926ec7848a308fa34852cb7429f986ccafa910 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Thu, 12 Jun 2025 13:11:59 +0200 Subject: [PATCH 50/71] added demo code to other_tests Signed-off-by: Bogaert Aaron --- .../execute_command/other_tests.py | 207 ++++++++++++------ 1 file changed, 135 insertions(+), 72 deletions(-) diff --git a/tests/command_execution/execute_command/other_tests.py b/tests/command_execution/execute_command/other_tests.py index f2e707db..b16149ab 100644 --- a/tests/command_execution/execute_command/other_tests.py +++ b/tests/command_execution/execute_command/other_tests.py @@ -1,10 +1,16 @@ # Copyright (C) 2025 Vrije Universiteit Brussel. All rights reserved. # SPDX-License-Identifier: MIT +from __future__ import annotations # Otherwise Queue comlains about typing + +from multiprocessing import Queue import shlex import subprocess import sys +from time import sleep +from typing import Any +from benchkit.shell.CommunicationLayer.hooks.hook import IOResultHook, MergeErrToOut, OutputHook from tests.command_execution.execute_command.util import script_path_string from benchkit.shell.ast_shell_out import execute_command @@ -18,11 +24,12 @@ resolveAllVariablesWithDict, ) from benchkit.shell.CommunicationLayer.hooks.basic_hooks import ( - logger_hook, + logger_line_hook, std_out_result_void_err, + void_hook, ) -from benchkit.shell.CommunicationLayer.IO_stream import PipeIOStream, ReadableIOStream -from benchkit.shell.shell import pipe_shell_out, shell_interactive, shell_out +from benchkit.shell.CommunicationLayer.IO_stream import PipeIOStream, ReadableIOStream, WritableIOStream +from benchkit.shell.shell import pipe_shell_out, shell_interactive, shell_out, split_on_pipe def commandtests(): @@ -106,81 +113,137 @@ def runtest(): print(str(output.decode("utf-8"))) -def testhalt(): - # shell_process = subprocess.Popen( - # # why exec: - # # we want to be able to use shell=True - # # however this would make the shell the pid of the subprocess - # # by using exec we can get make the command take over the pid of the shell - # # this only works for POSIX - # f"./shell_scripts/fillErrThenPrint.sh", - # # shell=True, - # stdout=sys.stdout, - # stderr=sys.stderr, - # stdin=subprocess.PIPE, - # ) - # shell_process.wait() - # args = { - # "print_output": True, - # "output_is_log": True, - # "redirect_stderr_to_stdout": False, - # "current_dir": None, - # "environment": None, - # "timeout": None, - # "ignore_ret_codes": (), - # } - # shell_out_new(convert_command_to_ast(script_path_string("fillOutThenErr")), **args) - # print("yeet") - - # test for the newlines - # raw_output = shell_out( - # command="cat", - # std_input="a \n\n b \n c\n", - # print_input=False, - # print_output=False, - # ) +def shell_test(): + a = pipe_shell_out('ls | cat') + print(a) + a = pipe_shell_out([script_path_string("runForever"), '|', 'cat']) + print(a) - # test for command that does not fully output in deafault terminal + # shell_interactive("ssh aaronb@soft24.vub.ac.be 'sh'") - # def pasalong(input_stream:ReadableIOStream,_) -> None: - # outline = input_stream.read(10) - # print(f'outline{outline!r}') - # while outline: - # print(f'outline{outline}') - # outline = input_stream.read(10) - # a = StdinIOStream(sys.stdin) +def testhalt(): - # pasalong(a,2) - # ssh aaronb@soft24.vub.ac.be sleep 10 - # shell_interactive( - # # command=['ssh', 'aaronb@soft24.vub.ac.be', 'ls -A -w 1'], - # # command=['ssh', 'aaronb@soft24.vub.ac.be', 'sleep 10'], - # command=['sh'], - # # output_is_log=True - # ) - shell_out( - # command=['/home/aaronb/Documents/benchFork/benchkit/tests/ast-shell/shell_tests/shell_scripts/runForever.sh'], - # command=['ssh', 'aaronb@soft24.vub.ac.be', 'sleep 10'], - # command=['ls'], - command="/home/aaron/benchkitFork/benchkit/tests/ast-shell/shell_tests/shell_scripts/runForever.sh", - output_is_log=True, - timeout=5, - ) + # ------------------------------------------------------- + # pid hook example + # for end + # ------------------------------------------------------- - # pipe_shell_out( - # [ - # "/home/aaron/benchkitFork/benchkit/tests/ast-shell/shell_tests/shell_scripts/runForever.sh","cat" - # ] - # ) - print("a") - # print(a) - # raw_output = shell_out( - # command="/usr/bin/perf list --no-desc", - # output_is_log=True, + def stdout_pid_result_filter(inputStream:ReadableIOStream,OutputStream:WritableIOStream,queue:Queue[Any]): + first_line = inputStream.read_line() + queue.put(first_line) + outline = inputStream.read(10) + while outline: + OutputStream.write(outline) + outline = inputStream.read(10) + + pid_stream_hook = IOResultHook(stdout_pid_result_filter) + + + pid_output_hook = OutputHook(pid_stream_hook,None) + + # ------------------------------------------------------- + # commands work + # first step + # get return codes/errors + # ------------------------------------------------------- + + # process_dir = execute_command(["mkdir", "test"],ordered_output_hooks=[void_hook()]) + # print(process_dir.get_return_code()) + + # execute_command(["command that does not exist"]) + + # wrong_retcode = execute_command(["cat", "wafel"], + # # success_value=1, + # # ignore_ret_codes=(1,), + # ordered_output_hooks=[void_hook()]) + # print(wrong_retcode.get_return_code()) + + # ------------------------------------------------------- + # ls + # -> does not work + # -> voidhook + # -> drawio + # -> would be nice to see what it is doing + # -> log_ls + # -> show + # -> drawio + # -> would be nice to get output + # -> output + # -> drawio + # -> move over to pipe cat + # ------------------------------------------------------- + + # command = ["ls"] + command = [script_path_string("runForever")] + + log_ls = logger_line_hook( + f"\033[34m[OUT | ls]\033[0m" + " {}", + f"\033[91m[ERR | ls]\033[0m" + " {}", + ) + + outobj, outhook = std_out_result_void_err() + + merge = MergeErrToOut() + + ls_command = execute_command(command, + ordered_output_hooks=[ + merge, + log_ls, + # outhook, + # void_hook(), + ] + ) + + # print(outobj.get_result()) + # print(ls_command.get_return_code()) + + ls_out_stream = ls_command.get_output().std_out + + log_cat = logger_line_hook( + f"\033[34m[OUT | cat]\033[0m" + " {}", + f"\033[91m[ERR | cat]\033[0m" + " {}", + ) + + # cat_command_string = ["cat"] + # cat_command_string = shlex.split("ssh aaronb@soft24.vub.ac.be 'cat'") + cat_command_string = shlex.split("ssh aaronb@soft24.vub.ac.be 'echo $$; cat'") + + cat_command = execute_command(cat_command_string, + std_input=ls_out_stream, + ordered_output_hooks=[ + pid_output_hook, + log_cat, + # outhook, + void_hook(), + ] + ) + + print(f'-------\n{pid_stream_hook.get_result()}\n----------') + + ls_command.get_return_code() + cat_command.get_return_code() + + + + + # these can not be reused + # log = logger_line_hook( + # f"\033[34m[OUT | ]\033[0m" + " {}", + # f"\033[91m[ERR | ]\033[0m" + " {}", + # ) + + # a = execute_command( + # shlex.split("ssh aaronb@soft24.vub.ac.be 'cd test; echo $$; exec sudo -S env varname=varvalue printenv varname'"), + # ordered_output_hooks=[log] # ) - # return raw_output + + + + # r = a.get_return_code() + # print(r) if __name__ == "__main__": - testhalt() + # testhalt() + shell_test() From 587137407aa5c8fb3642662c2df11d7955b52c89 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Thu, 12 Jun 2025 13:12:46 +0200 Subject: [PATCH 51/71] fixed backwards compatibility Signed-off-by: Bogaert Aaron --- .../CommunicationLayer/CommandProcess.py | 2 +- .../CommunicationLayer/hooks/basic_hooks.py | 1 - .../shell/CommunicationLayer/hooks/hook.py | 17 +- benchkit/shell/ast_shell_out.py | 4 +- benchkit/shell/shell.py | 147 ++++++++++++------ 5 files changed, 115 insertions(+), 56 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/CommandProcess.py b/benchkit/shell/CommunicationLayer/CommandProcess.py index 9fd0849e..82f6872a 100644 --- a/benchkit/shell/CommunicationLayer/CommandProcess.py +++ b/benchkit/shell/CommunicationLayer/CommandProcess.py @@ -96,4 +96,4 @@ def get_return_code(self) -> int: # THIS DOES NOT SEND IT TO THE RIGHT ONE -> move abstraction higher def signal(self, signalcode: int) -> None: self.__popen_object.send_signal(signalcode) - # self.__popen_object.wait(1) + self.__popen_object.wait(1) diff --git a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py index ac76c962..a85e3f3f 100644 --- a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py +++ b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py @@ -43,7 +43,6 @@ def hook_function_line(input_object: ReadableIOStream): end="", ) byt = input_object.read_line() - print(f"exited {formating_string.format('')}") return IOReaderHook(hook_function_line) diff --git a/benchkit/shell/CommunicationLayer/hooks/hook.py b/benchkit/shell/CommunicationLayer/hooks/hook.py index aadb0eef..00af7ff6 100644 --- a/benchkit/shell/CommunicationLayer/hooks/hook.py +++ b/benchkit/shell/CommunicationLayer/hooks/hook.py @@ -31,12 +31,15 @@ def get_outgoing_io_stream(self) -> ReadableIOStream: class IOWriterHook(IOHook): def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream], None]): self.hook_function = hook_function + self.__name = self.hook_function.__name__ super().__init__() def start_hook_function(self, input_stream: ReadableIOStream) -> None: p = Process( target=self.hook_function, args=(input_stream, self._output), + name=self.__name, + daemon=True, ) p.start() @@ -49,6 +52,7 @@ class IOReaderHook(IOHook): def __init__(self, hook_function: Callable[[ReadableIOStream], None]): self.hook_function = hook_function self._stream_duplicate = PipeIOStream() + self.__name = self.hook_function.__name__ super().__init__() @staticmethod @@ -72,10 +76,14 @@ def start_hook_function(self, input_stream: ReadableIOStream) -> None: self._output, self._stream_duplicate, ), + name=self.__name + " pasalong", + daemon=True, ) reader_hook_process = Process( target=self.hook_function, args=(self._stream_duplicate,), + name=self.__name, + daemon=True, ) duplication_process.start() @@ -89,12 +97,15 @@ class IOResultHook(IOHook): def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream, Queue[Any]], None]): self.__queue: Queue[Any] = Queue() self.hook_function = hook_function + self.__name = self.hook_function.__name__ super().__init__() def start_hook_function(self, input_stream: ReadableIOStream) -> None: p = Process( target=self.hook_function, args=(input_stream, self._output, self.__queue), + name=self.__name, + daemon=True, ) p.start() @@ -126,15 +137,15 @@ class MergeErrToOut(OutputHook): def __init__(self): self.std_out = PipeIOStream() - def hookfunction(self, input_object: ReadableIOStream, _: WritableIOStream): + def mergehookfunction(self, input_object: ReadableIOStream, _: WritableIOStream): outline = input_object.read_line() while outline: self.std_out.write(outline) outline = input_object.read_line() def attatch(self, output: Output) -> Output: - stdout_hook = IOWriterHook(self.hookfunction) - stderr_hook = IOWriterHook(self.hookfunction) + stdout_hook = IOWriterHook(self.mergehookfunction) + stderr_hook = IOWriterHook(self.mergehookfunction) stdout_hook.start_hook_function(output.std_out) stderr_hook.start_hook_function(output.std_err) self.std_out.endWriting() diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/ast_shell_out.py index 977a7ecf..c155e853 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/ast_shell_out.py @@ -4,7 +4,7 @@ # Otherwise os.PathLike[Any] complains from __future__ import annotations -import os +import multiprocessing import pathlib import subprocess from typing import Any, Dict, Iterable, List, Optional @@ -42,6 +42,8 @@ def execute_command( ordered_output_hooks: Optional[List[OutputHook]] = None, ) -> CommandProcess: + # untested but this line should force it to work on mac + if environment is None: environment = {} diff --git a/benchkit/shell/shell.py b/benchkit/shell/shell.py index 9b08d30f..882f0e55 100644 --- a/benchkit/shell/shell.py +++ b/benchkit/shell/shell.py @@ -13,13 +13,13 @@ from benchkit.shell.ast_shell_out import execute_command from benchkit.shell.CommunicationLayer.CommandProcess import CommandProcess from benchkit.shell.CommunicationLayer.hooks.basic_hooks import ( - create_stream_line_logger_hook, logger_line_hook, std_out_result_void_err, void_hook, + void_input, ) from benchkit.shell.CommunicationLayer.hooks.hook import ( - IOHook, + IOWriterHook, MergeErrToOut, OutputHook, ) @@ -34,10 +34,22 @@ USE_NEW_SHELL = True +def split_on_pipe(sub_commands:List[str]): + full_list:List[List[str]] = [] + sub_command:List[str] = [] + for s in sub_commands: + if s == "|": + full_list.append(sub_command) + sub_command = [] + else: + sub_command.append(s) + full_list.append(sub_command) + return full_list + + def pipe_shell_out( - # command: Command, - commands: List[Command], + command: Command, current_dir: Optional[PathType] = None, shell: bool = True, print_command: bool = True, @@ -57,41 +69,70 @@ def pipe_shell_out( Returns: str: the output of the piped command. """ - i: ReadableIOStream = EmptyIOStream() - processes: List[CommandProcess] = [] - for com in commands: - command = shlex.split(com) if isinstance(com, str) else com - command_string = shlex.join(command) - output_hooks: List[OutputHook] = [] - log = logger_line_hook( - f"\033[34m[OUT | {command_string}]\033[0m" + " {}", - f"\033[91m[ERR | {command_string}]\033[0m" + " {}", - ) - output_hooks.append(log) + if USE_NEW_SHELL: + # create a list for all processes that will be run + processes: List[CommandProcess] = [] - input_hooks: List[IOHook] = [] + # no input posible in the begining so we create an empty stream for the first command + input_stream: ReadableIOStream = EmptyIOStream() - a = create_stream_line_logger_hook(f"input of {command_string} |" + " {}") - input_hooks.append(a) - print(f"\033[32m[START | {command_string}]\033[0m") - process = execute_command( - command=command, - std_input=i, - current_dir=current_dir, - ordered_output_hooks=output_hooks, - ordered_input_hooks=input_hooks, - # If ignore_ret_codes is empty we swap it over to None instead - ignore_ret_codes=ignore_ret_codes if not any(True for _ in ignore_ret_codes) else None, - ) - processes.append(process) - i = process.get_output().std_out - # IOWriterHook(void_input).start_hook_function(process.get_output().std_err) + # create a hook for the last process to gather the result of the piped command + gather_result_object, gather_result_hook = std_out_result_void_err() + + # break our command in pieces in case there are pipes + command_split = shlex.split(command) if isinstance(command,str) else command + command_string = command_string = shlex.join(command_split) + commands = split_on_pipe(command_split) - # IOWriterHook(void_input).start_hook_function(i) - for p in processes: - print(p.get_return_code()) + if print_command: + print(f"\033[32m[Full piped command | {command_string}]\033[0m") - return "" + # enumerate all commands and start a process for each of them + for idx, com in enumerate(commands): + # break the command for the execution + command = shlex.split(com) if isinstance(com, str) else com + command_string = shlex.join(command) + + # TODO: this technicaly is not the deafault but it stays here for demonstration reasons for a bit + # log each command + output_hooks: List[OutputHook] = [] + log = logger_line_hook( + f"\033[34m[OUT | {command_string}]\033[0m" + " {}", + f"\033[91m[ERR | {command_string}]\033[0m" + " {}", + ) + output_hooks.append(log) + + if idx == len(commands) - 1: + # for the last command we merge err and out and gather it + output_hooks.append(MergeErrToOut()) + output_hooks.append(gather_result_hook) + else: + # for all other commands we void error and out will be used by next command + void_err = OutputHook(None,IOWriterHook(void_input)) + output_hooks.append(void_err) + + # print the command we are about to start + if print_command: + print(f"\033[32m[START | {command_string}]\033[0m") + process = execute_command( + command=command, + std_input=input_stream, + current_dir=current_dir, + ordered_output_hooks=output_hooks, + # If ignore_ret_codes is empty we swap it over to None instead + ignore_ret_codes=ignore_ret_codes if not any(True for _ in ignore_ret_codes) else None, + ) + # remember the process + processes.append(process) + + # Link the output stream to the next by making it the input stream + input_stream = process.get_output().std_out + + # wait for all procces to finish + for p in processes: + p.get_return_code() + + return gather_result_object.get_result().decode("utf-8") arguments = get_args(command) if print_command: print_header( @@ -210,8 +251,12 @@ def shell_out( std_input_io = StringIOStream(std_input) if std_input is not None else None output_hooks: List[OutputHook] = [] + # if we need to ignore any error code we just add all of them to the ignore list + # the overhead of doing this is minimal and it keeps the code cleaner + if ignore_any_error_code: + ignore_ret_codes = (x for x in range(226)) + # add hook to log the output of the command - # TODO: make this customizable if output_is_log: log = logger_line_hook( f"\033[34m[OUT | {command_string}]\033[0m" + " {}", @@ -230,12 +275,10 @@ def shell_out( # gather the entire stdout stream into a variable output_hook_object, voiding_result_hook = std_out_result_void_err() - output_hooks.append(voiding_result_hook) # this will make sure we clear all our outputs in the end # otherwise the command might block - # TODO: we can make the voiding result hook do this output_hooks.append(void_hook()) process = execute_command( @@ -245,8 +288,7 @@ def shell_out( environment=environment, timeout=timeout, ordered_output_hooks=output_hooks, - # If ignore_ret_codes is empty we swap it over to None instead - ignore_ret_codes=ignore_ret_codes if not any(True for _ in ignore_ret_codes) else None, + ignore_ret_codes=ignore_ret_codes, ) # this line is here to check if the program failed process.get_return_code() @@ -368,6 +410,13 @@ def shell_interactive( ignore_ret_codes: Iterable[int] = (), ) -> None: if USE_NEW_SHELL: + # ok so, you can not exit this, + # you exit the shell you exit the benchmark + + # TODO: workaround: we can add make custom hooks for this function that survive the interupt signal once + # using try: except Keyinterupt + # + command = shlex.split(command) if isinstance(command, str) else command # convert string input to an IOStream @@ -375,14 +424,12 @@ def shell_interactive( output_hooks = [] # add hook to log the output of the command - # TODO: make this customizable log = logger_line_hook( "> {}", "! {}", ) output_hooks.append(log) - # TODO: log hook could be written better here to do this output_hooks.append(void_hook()) # Print the input string @@ -395,7 +442,6 @@ def shell_interactive( current_dir=current_dir, environment=environment, ordered_output_hooks=output_hooks, - print_command_start=print_input, # If ignore_ret_codes is empty we swap it over to None instead ignore_ret_codes=ignore_ret_codes if not any(True for _ in ignore_ret_codes) else None, ) @@ -404,14 +450,15 @@ def shell_interactive( # goes to the process we are interacting with original_sigint_handler = signal.getsignal(signal.SIGINT) - def signal_handler(sig, frame): - process.signal(sig) - # sys.stdin.close() - signal.signal(signal.SIGINT, original_sigint_handler) + # def signal_handler(sig, frame): + # process.signal(sig) + # sys.stdin.close() + # signal.signal(signal.SIGINT, original_sigint_handler) - signal.signal(signal.SIGINT, signal_handler) + # signal.signal(signal.SIGINT, signal_handler) # use our stdin as the interaction for the process + try: outline = sys.stdin.read(1).encode("utf-8") while outline: @@ -421,13 +468,13 @@ def signal_handler(sig, frame): # This is intended as the exit method except Exception: pass + # except KeyboardInterrupt: + # pass # Cleanly close the input file std_input_io.endWriting() return None - # TODO: return to this once we have a frame for the return value of shell_out_new - arguments = get_args(command) print_header( arguments=arguments, From d05c61d2d98a7e0e2887beea36afbf14b5476ded Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Sat, 14 Jun 2025 12:19:42 +0200 Subject: [PATCH 52/71] fix a bug where processes dont clean up nicely Signed-off-by: Bogaert Aaron --- benchkit/shell/CommunicationLayer/CommandProcess.py | 1 + 1 file changed, 1 insertion(+) diff --git a/benchkit/shell/CommunicationLayer/CommandProcess.py b/benchkit/shell/CommunicationLayer/CommandProcess.py index 82f6872a..b21f46f6 100644 --- a/benchkit/shell/CommunicationLayer/CommandProcess.py +++ b/benchkit/shell/CommunicationLayer/CommandProcess.py @@ -63,6 +63,7 @@ def wait_func( except TimeoutExpired as exc: # TODO: we can add some form of logging here to warn the user if something went wrong subprocess.terminate() + subprocess.wait(1) queue.put((-1, exc)) def __wait_async(self) -> Thread: From 3dbe3fba39e5f1b2bff32352dc3925a3bfd0a06c Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Thu, 12 Jun 2025 14:57:49 +0200 Subject: [PATCH 53/71] fix the range for all ignored return codes Signed-off-by: Bogaert Aaron --- benchkit/shell/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchkit/shell/shell.py b/benchkit/shell/shell.py index 882f0e55..7225978b 100644 --- a/benchkit/shell/shell.py +++ b/benchkit/shell/shell.py @@ -254,7 +254,7 @@ def shell_out( # if we need to ignore any error code we just add all of them to the ignore list # the overhead of doing this is minimal and it keeps the code cleaner if ignore_any_error_code: - ignore_ret_codes = (x for x in range(226)) + ignore_ret_codes = (x for x in range(256)) # add hook to log the output of the command if output_is_log: From 431515a7658caa2bd71434a1602a1fe68c5aab1a Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Mon, 16 Jun 2025 19:14:17 +0200 Subject: [PATCH 54/71] add some more usefull hooks Signed-off-by: Bogaert Aaron --- .../CommunicationLayer/hooks/basic_hooks.py | 32 +++++++++++++++++++ .../execute_command/other_tests.py | 32 ++++++++++++++++--- 2 files changed, 59 insertions(+), 5 deletions(-) diff --git a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py index a85e3f3f..b7244d93 100644 --- a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py +++ b/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py @@ -4,7 +4,9 @@ from __future__ import annotations # Otherwise Queue comlains about typing from multiprocessing import Queue +from time import sleep from typing import Any +from pathlib import Path from benchkit.shell.CommunicationLayer.hooks.hook import ( IOReaderHook, @@ -14,6 +16,7 @@ ) from benchkit.shell.CommunicationLayer.IO_stream import ( ReadableIOStream, + StringIOStream, WritableIOStream, try_converting_bystring_to_readable_characters, ) @@ -33,6 +36,35 @@ def hook_function( return IOResultHook(hook_function) +def stream_prepend_hook(stream:StringIOStream): + def hook_function( + input_object: ReadableIOStream, output_object: WritableIOStream, + ): + outline = stream.read(10) + while outline: + output_object.write(outline) + outline = input_object.read(10) + outline = input_object.read(10) + while outline: + output_object.write(outline) + outline = input_object.read(10) + + return IOWriterHook(hook_function) + +def write_to_file_hook(path:Path,mode:str="a"): + def hook_function( + input_object: ReadableIOStream, + ): + with path.open(mode=f'{mode}b', buffering=0) as file: + outline = input_object.read(10) + while outline: + file.write(outline) + outline = input_object.read(10) + file.flush() + + return IOReaderHook(hook_function) + + def create_stream_line_logger_hook(formating_string: str) -> IOReaderHook: def hook_function_line(input_object: ReadableIOStream): diff --git a/tests/command_execution/execute_command/other_tests.py b/tests/command_execution/execute_command/other_tests.py index b16149ab..c4507a2c 100644 --- a/tests/command_execution/execute_command/other_tests.py +++ b/tests/command_execution/execute_command/other_tests.py @@ -4,6 +4,7 @@ from __future__ import annotations # Otherwise Queue comlains about typing from multiprocessing import Queue +from pathlib import Path import shlex import subprocess import sys @@ -26,9 +27,11 @@ from benchkit.shell.CommunicationLayer.hooks.basic_hooks import ( logger_line_hook, std_out_result_void_err, + stream_prepend_hook, void_hook, + write_to_file_hook, ) -from benchkit.shell.CommunicationLayer.IO_stream import PipeIOStream, ReadableIOStream, WritableIOStream +from benchkit.shell.CommunicationLayer.IO_stream import PipeIOStream, ReadableIOStream, StringIOStream, WritableIOStream from benchkit.shell.shell import pipe_shell_out, shell_interactive, shell_out, split_on_pipe @@ -114,10 +117,29 @@ def runtest(): def shell_test(): - a = pipe_shell_out('ls | cat') - print(a) - a = pipe_shell_out([script_path_string("runForever"), '|', 'cat']) - print(a) + + log_ls = logger_line_hook( + f"\033[34m[OUT | sudo]\033[0m" + " {}", + f"\033[91m[ERR | sudo]\033[0m" + " {}", + ) + filewriterIO = write_to_file_hook(Path("/tmp/testfile.txt")) + filewriter = OutputHook(filewriterIO,None) + + a = execute_command( + shlex.split("ssh aaronb@soft67.vub.ac.be 'sudo -S -k ls'"), + ordered_input_hooks=[stream_prepend_hook(StringIOStream("123456789"))], + ordered_output_hooks=[log_ls,MergeErrToOut(),filewriter,void_hook()] + ) + + a.get_return_code() + + sleep(1) + + + # a = pipe_shell_out('sudo perf stat ls') + # print(a) + # a = pipe_shell_out([script_path_string("runForever"), '|', 'cat']) + # print(a) # shell_interactive("ssh aaronb@soft24.vub.ac.be 'sh'") From 6efe641e75dc3c7a54466042c540a5048219593a Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Tue, 17 Jun 2025 10:57:51 +0200 Subject: [PATCH 55/71] remove ast from execution branch Signed-off-by: Bogaert Aaron --- .../commandAST/Visitors/print_visitor.py | 41 -------- .../commandAST/Visitors/variable_visitors.py | 35 ------- .../Visitors/verification_visitors.py | 16 ---- benchkit/shell/commandAST/abstractTypes.py | 23 ----- benchkit/shell/commandAST/command.py | 40 -------- .../shell/commandAST/nodes/commandNodes.py | 36 ------- .../shell/commandAST/nodes/futureNodes.py | 15 --- .../shell/commandAST/nodes/variable_node.py | 51 ---------- benchkit/shell/commandAST/visitor.py | 95 ------------------- 9 files changed, 352 deletions(-) delete mode 100644 benchkit/shell/commandAST/Visitors/print_visitor.py delete mode 100644 benchkit/shell/commandAST/Visitors/variable_visitors.py delete mode 100644 benchkit/shell/commandAST/Visitors/verification_visitors.py delete mode 100755 benchkit/shell/commandAST/abstractTypes.py delete mode 100755 benchkit/shell/commandAST/command.py delete mode 100644 benchkit/shell/commandAST/nodes/commandNodes.py delete mode 100644 benchkit/shell/commandAST/nodes/futureNodes.py delete mode 100755 benchkit/shell/commandAST/nodes/variable_node.py delete mode 100755 benchkit/shell/commandAST/visitor.py diff --git a/benchkit/shell/commandAST/Visitors/print_visitor.py b/benchkit/shell/commandAST/Visitors/print_visitor.py deleted file mode 100644 index 6823e73a..00000000 --- a/benchkit/shell/commandAST/Visitors/print_visitor.py +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. -# SPDX-License-Identifier: MIT - -from benchkit.shell.commandAST.abstractTypes import Node, Visitor -from benchkit.shell.commandAST.nodes.commandNodes import CommandNode, StringNode -from benchkit.shell.commandAST.nodes.variable_node import Var - - -class printASTVisitor(Visitor): - def __init__(self) -> None: - self.indent = 0 - - def printWithIndent(self, content: str): - print("|" * self.indent + content) - - def printType(self, node: Node): - self.printWithIndent(type(node).__name__) - - def __visitNodeCase(self, node: Node) -> Node: - if isinstance(node, StringNode): - self.printWithIndent(node.argument) - node.visit(self) - return node - - if isinstance(node, CommandNode): - node.visit(self) - return node - - if isinstance(node, Var): - self.printWithIndent(node.name) - node.visit(self) - return node - - return node.visit(self) - - def visit_node(self, node: Node) -> Node: - self.printType(node) - self.indent += 1 - ret = self.__visitNodeCase(node) - self.indent -= 1 - return ret diff --git a/benchkit/shell/commandAST/Visitors/variable_visitors.py b/benchkit/shell/commandAST/Visitors/variable_visitors.py deleted file mode 100644 index d47c424b..00000000 --- a/benchkit/shell/commandAST/Visitors/variable_visitors.py +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. -# SPDX-License-Identifier: MIT - -from typing import Dict, Set - -from benchkit.shell.commandAST.abstractTypes import Node, Visitor -from benchkit.shell.commandAST.nodes.commandNodes import StringNode -from benchkit.shell.commandAST.nodes.variable_node import Var - - -class resolveAllVariables(Visitor): - def __init__(self, assignment: Dict[str, str]) -> None: - self.assignment = assignment - - def visit_node(self, node: Node) -> Node: - if isinstance(node, Var): - if node.name in self.assignment: - return StringNode(self.assignment[node.name]) - else: - raise ValueError( - f"resolveAllVariables needs a value for all var nodes." - f"Var node with name {node.name} has no assigned value" - ) - return node.visit(self) - - -class VariableFinder(Visitor): - def __init__(self) -> None: - self.variables: Set[Var] = set() - - def visit_node(self, node: Node) -> Node: - if isinstance(node, Var): - self.variables.add(node) - node.visit(self) - return node diff --git a/benchkit/shell/commandAST/Visitors/verification_visitors.py b/benchkit/shell/commandAST/Visitors/verification_visitors.py deleted file mode 100644 index 530be6e1..00000000 --- a/benchkit/shell/commandAST/Visitors/verification_visitors.py +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. -# SPDX-License-Identifier: MIT - -from benchkit.shell.commandAST.abstractTypes import Node, Visitor -from benchkit.shell.commandAST.nodes.commandNodes import CommandNode, StringNode - - -class OnlyStringAndCommandNodesChecker(Visitor): - def visit_node(self, node: Node) -> Node: - if not (isinstance(node, StringNode) or isinstance(node, CommandNode)): - raise TypeError( - f"All nodes in the ast need to be of type StringNode or CommandNode" - f"before the comand can be executed found node of type {type(node)}" - ) - node.visit(self) - return node diff --git a/benchkit/shell/commandAST/abstractTypes.py b/benchkit/shell/commandAST/abstractTypes.py deleted file mode 100755 index 4b49e6ba..00000000 --- a/benchkit/shell/commandAST/abstractTypes.py +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. -# SPDX-License-Identifier: MIT - -from __future__ import annotations - -from abc import ABC, abstractmethod - - -class Node(ABC): - @abstractmethod - def visit(self, visitor: Visitor) -> Node: - """This method defines how the different ellemts of the AST should be traversed - Needs to implemented such that we can always traverse all nodes in a tree""" - - -class Visitor(ABC): - def visit_node(self, node: Node) -> Node: - """This method When visiting a node can do manipulations on the node - and continue the traversal in a custom way""" - return node.visit(self) - - def visitAST(self, node: Node) -> Node: - return self.visit_node(node) diff --git a/benchkit/shell/commandAST/command.py b/benchkit/shell/commandAST/command.py deleted file mode 100755 index fc2d4f41..00000000 --- a/benchkit/shell/commandAST/command.py +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. -# SPDX-License-Identifier: MIT - -import shlex - -from benchkit.shell.commandAST.nodes.commandNodes import CommandNode, StringNode -from benchkit.shell.commandAST.nodes.futureNodes import Generic, Location -from benchkit.shell.commandAST.nodes.variable_node import Node - - -def process_program(program: str | Generic | Location) -> StringNode: - if type(program) is str: - return StringNode(program.strip()) - else: - raise TypeError() - - -def process_argument(argument: str | Node) -> Node: - if type(argument) is str: - return StringNode(argument) - if isinstance(argument, Node): - return argument - else: - raise TypeError(f"argument is of type {type(argument)}") - - -def command( - program: str | Generic | Location, arguments: list[Node | str] | None = None -) -> CommandNode: - if arguments is None: - arguments = [] - if isinstance(program, str): - ls = shlex.split(program) - program = ls[0] - extra_argumens = ls[1::] - arguments = extra_argumens + arguments - if not arguments: - return CommandNode(process_program(program), None) - else: - return CommandNode(process_program(program), list(map(process_argument, arguments))) diff --git a/benchkit/shell/commandAST/nodes/commandNodes.py b/benchkit/shell/commandAST/nodes/commandNodes.py deleted file mode 100644 index dfcddf40..00000000 --- a/benchkit/shell/commandAST/nodes/commandNodes.py +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. -# SPDX-License-Identifier: MIT - -from typing import List - -from benchkit.shell.commandAST.abstractTypes import Node, Visitor - - -class StringNode(Node): - def __init__(self, argument: str) -> None: - self.argument = argument - - def visit(self, visitor: Visitor): - return self - - -class CommandNode(Node): - def __init__(self, command: Node, arguments: None | List[Node] = None) -> None: - self.command: Node = command - if arguments is None: - arguments = [] - self.arguments: List[Node] = arguments - - def visit(self, visitor: Visitor): - self.command = visitor.visit_node(self.command) - self.arguments = list(map(visitor.visit_node, self.arguments)) - return self - - -class InlineCommandNode(CommandNode): - def __init__(self, command: CommandNode, arguments: List[Node] | None = None): - super().__init__(command, arguments) - - def visit(self, visitor: Visitor): - super().visit(visitor) - return self diff --git a/benchkit/shell/commandAST/nodes/futureNodes.py b/benchkit/shell/commandAST/nodes/futureNodes.py deleted file mode 100644 index a08a43d9..00000000 --- a/benchkit/shell/commandAST/nodes/futureNodes.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. -# SPDX-License-Identifier: MIT - -"""to facilitate moving files between platforms""" - - -class Location: - pass - - -"""to facilitate tools having different names across platforms""" - - -class Generic: - pass diff --git a/benchkit/shell/commandAST/nodes/variable_node.py b/benchkit/shell/commandAST/nodes/variable_node.py deleted file mode 100755 index 497e6dbe..00000000 --- a/benchkit/shell/commandAST/nodes/variable_node.py +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. -# SPDX-License-Identifier: MIT - -from typing import Any, List - -from benchkit.shell.commandAST.abstractTypes import Node, Visitor - - -class Var(Node): - """ - Class for variables that we can use to do Parameterization - """ - - def __init__( - self, - name: str, - parameter_range: None | List[Any] = None, - parameter_options: None | List[Any] = None, - ): - # Make it so you can not instanciate this class - if type(self) is Var: - raise TypeError("Can not instanciate generic variables") - - if parameter_range is None: - parameter_range = [] - if parameter_options is None: - parameter_options = [] - - self.parameter_range = parameter_range - self.parameter_options = parameter_options - - self.name = name - self.id = id(self) - - def visit(self, visitor: Visitor): - return self - - -class RuntimeVariable(Var): - """Type used to designate a variable as a runtime variable - ex: Number of threads, size of the array we want to sort""" - - -class BuildVariable(Var): - """Type used to deignate a variable as a build variable - ex: optimization level of gcc compiler,""" - - -class SetupVariable(Var): - """Type used to deignate a variable as a settup time variable - ex: variables that decide the shedular""" diff --git a/benchkit/shell/commandAST/visitor.py b/benchkit/shell/commandAST/visitor.py deleted file mode 100755 index 94c4e135..00000000 --- a/benchkit/shell/commandAST/visitor.py +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. -# SPDX-License-Identifier: MIT - -import shlex -from typing import Dict - -from benchkit.shell.commandAST.abstractTypes import Node -from benchkit.shell.commandAST.command import command -from benchkit.shell.commandAST.nodes.commandNodes import ( - CommandNode, - InlineCommandNode, - StringNode, -) -from benchkit.shell.commandAST.nodes.variable_node import Visitor -from benchkit.shell.commandAST.Visitors.print_visitor import printASTVisitor -from benchkit.shell.commandAST.Visitors.variable_visitors import ( - VariableFinder, - resolveAllVariables, -) -from benchkit.shell.commandAST.Visitors.verification_visitors import ( - OnlyStringAndCommandNodesChecker, -) - - -def VariableDuplicateDetector(ast: Node): - variable_finder = VariableFinder() - variable_finder.visitAST(ast) - var_names = list(map(lambda x: x.name, variable_finder.variables)) - for var_name in var_names: - if var_names.count(var_name) >= 2: - raise NameError(f"The variable name {var_name} occures in two sepperate objects") - - -def CheckReadyForConversionToCommand(ast: CommandNode): - # TODO: I want to make a grammar checker this will do for now - check = OnlyStringAndCommandNodesChecker() - ast.visit(check) - - -def convertComandToString(ast: CommandNode) -> str: - class CommandToStringVisitor(Visitor): - def visit_node(self, node: Node) -> Node: - if isinstance(node, CommandNode): - new_arg_list = [] - for arg in node.arguments: - if isinstance(arg, InlineCommandNode): - converted_ast = arg.visit(converter) - new_arg_list.append(converted_ast.command) - new_arg_list += converted_ast.arguments - else: - new_arg_list.append(arg) - node.arguments = new_arg_list - return StringNode(convertComandToString(node)) - return node.visit(self) - - converter = CommandToStringVisitor() - converted_ast = ast.visit(converter) - - args = [x.argument for x in converted_ast.arguments] - args.insert(0, converted_ast.command.argument) - return shlex.join(args) - - -# Functions to hide away visitors -def printAst(ast: Node): - v = printASTVisitor() - v.visitAST(ast) - - -def resolveAllVariablesWithDict(ast: Node, d: Dict[str, str]): - variable_resolver = resolveAllVariables(d) - # check if amountOfTimeToSleep is not used twice in the command - # by dfferent vars resulting in wrong assignment possibly - VariableDuplicateDetector(ast) - - # Resolve the vars given an assignment dictionairy - return variable_resolver.visitAST(ast) - - -def getString(ast: Node): - - # Make sure that the command has been sufficiently resolved by visitors - # aka there are no leftovers from bad patterns - CheckReadyForConversionToCommand(ast) - - # Convert the ast to a string and print it - return convertComandToString(ast) - - -def execute_on_remote(ast: Node, host: str, port: int) -> Node: - return command("ssh", [host, "-p", str(port), "-t", ast]) - - -def inline(ast: CommandNode) -> InlineCommandNode: - return InlineCommandNode(ast.command, ast.arguments) From 6e46ded4122ec0fb97e8c1148990c496be819a69 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Tue, 24 Jun 2025 11:26:18 +0200 Subject: [PATCH 56/71] reorganize the files of the new shell module --- .../command_process.py} | 12 +- .../execute.py} | 59 ++- .../io}/hooks/basic_hooks.py | 5 +- .../io}/hooks/hook.py | 36 +- .../io/output.py} | 16 +- .../io/stream.py} | 32 +- benchkit/shell/shell.py | 10 +- .../execute_command/ast_shell.py | 339 ------------------ .../execute_command/other_tests.py | 155 +++----- .../test_execute_command_function.py | 4 +- .../test_execute_command_runtime.py | 10 +- .../command_execution/execute_command/util.py | 6 +- tests/command_execution/readme.md | 5 +- 13 files changed, 152 insertions(+), 537 deletions(-) rename benchkit/shell/{CommunicationLayer/CommandProcess.py => command_execution/command_process.py} (86%) rename benchkit/shell/{ast_shell_out.py => command_execution/execute.py} (61%) rename benchkit/shell/{CommunicationLayer => command_execution/io}/hooks/basic_hooks.py (95%) rename benchkit/shell/{CommunicationLayer => command_execution/io}/hooks/hook.py (77%) rename benchkit/shell/{CommunicationLayer/OutputObject.py => command_execution/io/output.py} (55%) rename benchkit/shell/{CommunicationLayer/IO_stream.py => command_execution/io/stream.py} (70%) delete mode 100644 tests/command_execution/execute_command/ast_shell.py diff --git a/benchkit/shell/CommunicationLayer/CommandProcess.py b/benchkit/shell/command_execution/command_process.py similarity index 86% rename from benchkit/shell/CommunicationLayer/CommandProcess.py rename to benchkit/shell/command_execution/command_process.py index b21f46f6..039464a3 100644 --- a/benchkit/shell/CommunicationLayer/CommandProcess.py +++ b/benchkit/shell/command_execution/command_process.py @@ -9,10 +9,11 @@ from threading import Thread from typing import Iterable, Optional, Tuple -from benchkit.shell.CommunicationLayer.OutputObject import Output +from benchkit.shell.command_execution.io.output import Output class CommandProcess: + """Encaptulation of the Popen process with functions to use it in an asyncronous way""" def __init__( self, popen_object: Popen[bytes], @@ -40,7 +41,7 @@ def __init__( self.process: Thread = self.__wait_async() @staticmethod - def wait_func( + def __wait_func( subprocess: Popen[bytes], queue: Queue[Tuple[int, Optional[Exception]]], timeout: Optional[int], @@ -68,7 +69,7 @@ def wait_func( def __wait_async(self) -> Thread: waiting_thread = Thread( - target=self.wait_func, + target=self.__wait_func, args=( self.__popen_object, self.__retcode_queue, @@ -80,9 +81,14 @@ def __wait_async(self) -> Thread: return waiting_thread def get_output(self) -> Output: + """get the Output object related to this process + can be used as input for other processes""" return self.__output def get_return_code(self) -> int: + """halt until the process has a return code + if the return code is not ignored + or the waittime was exceded throw an error instead""" if self.error is not None: raise self.error if self.retcode: diff --git a/benchkit/shell/ast_shell_out.py b/benchkit/shell/command_execution/execute.py similarity index 61% rename from benchkit/shell/ast_shell_out.py rename to benchkit/shell/command_execution/execute.py index c155e853..9084a34c 100755 --- a/benchkit/shell/ast_shell_out.py +++ b/benchkit/shell/command_execution/execute.py @@ -4,23 +4,22 @@ # Otherwise os.PathLike[Any] complains from __future__ import annotations -import multiprocessing import pathlib import subprocess -from typing import Any, Dict, Iterable, List, Optional +from typing import Dict, Iterable, List, Optional -from benchkit.shell.CommunicationLayer.CommandProcess import CommandProcess -from benchkit.shell.CommunicationLayer.hooks.hook import ( +from benchkit.shell.command_execution.command_process import CommandProcess +from benchkit.shell.command_execution.io.hooks.hook import ( IOHook, IOWriterHook, OutputHook, ) -from benchkit.shell.CommunicationLayer.IO_stream import ( +from benchkit.shell.command_execution.io.stream import ( EmptyIOStream, ReadableIOStream, WritableIOStream, ) -from benchkit.shell.CommunicationLayer.OutputObject import sshOutput +from benchkit.shell.command_execution.io.output import popen_get_output def execute_command( @@ -28,8 +27,6 @@ def execute_command( command: List[str], # This dir can only be a path on the local machine current_dir: Optional[pathlib.Path] = None, - - # TODO: the environment variable will start a process with only these env variables # Do we want to add os.environ to this? environment: Optional[Dict[str, str]] = None, # needed for construction and evaluation of output @@ -42,12 +39,10 @@ def execute_command( ordered_output_hooks: Optional[List[OutputHook]] = None, ) -> CommandProcess: - # untested but this line should force it to work on mac - if environment is None: environment = {} - shell_process = subprocess.Popen( + process = subprocess.Popen( command, cwd=current_dir, env=environment, @@ -56,6 +51,7 @@ def execute_command( stdin=subprocess.PIPE, ) try: + # 1) manipulate the input stream using the ordered input hooks if ordered_input_hooks is not None: if std_input is None: std_input = EmptyIOStream() @@ -63,45 +59,46 @@ def execute_command( inhook.start_hook_function(std_input) std_input = inhook.get_outgoing_io_stream() - # hookfunction to write a ReadableIOStream to stdin + # 2) Write the input to the command + # hookfunction to write the ReadableIOStream given as input to stdin def pasalong(input_stream: ReadableIOStream, _: WritableIOStream) -> None: - if shell_process.stdin is not None: + if process.stdin is not None: outline = input_stream.read(1) while outline: - shell_process.stdin.write(outline) - shell_process.stdin.flush() + process.stdin.write(outline) + process.stdin.flush() outline = input_stream.read(1) - shell_process.stdin.close() + process.stdin.close() - # feeding the standard input into the command if std_input is not None: hook = IOWriterHook(pasalong) - # TODO: replace std_input by hooked input hook.start_hook_function(std_input) - if shell_process.stdin is not None: - shell_process.stdin.close() + if process.stdin is not None: + process.stdin.close() - command_output = sshOutput(shell_process.stdout, shell_process.stderr) + # 3) manipulate teh output stream using the orderd output hooks + command_output = popen_get_output(process.stdout, process.stderr) if ordered_output_hooks is not None: for outhook in ordered_output_hooks: command_output = outhook.attatch(command_output) # close all the main thread file descriptors - if shell_process.stdout is not None: - shell_process.stdout.close() - if shell_process.stderr is not None: - shell_process.stderr.close() - if shell_process.stdin is not None: - shell_process.stdin.close() - + if process.stdout is not None: + process.stdout.close() + if process.stderr is not None: + process.stderr.close() + if process.stdin is not None: + process.stdin.close() + + # 4) construct the object we can use to monitor the process return CommandProcess( - shell_process, command_output, timeout, success_value, ignore_ret_codes + process, command_output, timeout, success_value, ignore_ret_codes ) except Exception: # make sure the process is terminated for cleanup # TODO: this needs some test cases - shell_process.terminate() - shell_process.wait() + process.terminate() + process.wait() raise diff --git a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py b/benchkit/shell/command_execution/io/hooks/basic_hooks.py similarity index 95% rename from benchkit/shell/CommunicationLayer/hooks/basic_hooks.py rename to benchkit/shell/command_execution/io/hooks/basic_hooks.py index b7244d93..2d44c9c6 100644 --- a/benchkit/shell/CommunicationLayer/hooks/basic_hooks.py +++ b/benchkit/shell/command_execution/io/hooks/basic_hooks.py @@ -4,17 +4,16 @@ from __future__ import annotations # Otherwise Queue comlains about typing from multiprocessing import Queue -from time import sleep from typing import Any from pathlib import Path -from benchkit.shell.CommunicationLayer.hooks.hook import ( +from benchkit.shell.command_execution.io.hooks.hook import ( IOReaderHook, IOResultHook, IOWriterHook, OutputHook, ) -from benchkit.shell.CommunicationLayer.IO_stream import ( +from benchkit.shell.command_execution.io.stream import ( ReadableIOStream, StringIOStream, WritableIOStream, diff --git a/benchkit/shell/CommunicationLayer/hooks/hook.py b/benchkit/shell/command_execution/io/hooks/hook.py similarity index 77% rename from benchkit/shell/CommunicationLayer/hooks/hook.py rename to benchkit/shell/command_execution/io/hooks/hook.py index 00af7ff6..b6d738ec 100644 --- a/benchkit/shell/CommunicationLayer/hooks/hook.py +++ b/benchkit/shell/command_execution/io/hooks/hook.py @@ -7,16 +7,17 @@ from multiprocessing import Process, Queue from typing import Any, Callable -from benchkit.shell.CommunicationLayer.IO_stream import ( +from benchkit.shell.command_execution.io.stream import ( EmptyIOStream, PipeIOStream, ReadableIOStream, WritableIOStream, ) -from benchkit.shell.CommunicationLayer.OutputObject import Output +from benchkit.shell.command_execution.io.output import Output class IOHook(ABC): + """basic interface that each hook needs to implement""" def __init__(self): self._output = PipeIOStream() @@ -29,12 +30,16 @@ def get_outgoing_io_stream(self) -> ReadableIOStream: class IOWriterHook(IOHook): + """Hook that expects a function of the form Callable[[ReadableIOStream, PipeIOStream] + intended as a general purpouse stream manupulator""" + def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream], None]): self.hook_function = hook_function self.__name = self.hook_function.__name__ super().__init__() def start_hook_function(self, input_stream: ReadableIOStream) -> None: + # A process is spawned to keep the hookfunction running on the stream p = Process( target=self.hook_function, args=(input_stream, self._output), @@ -44,7 +49,7 @@ def start_hook_function(self, input_stream: ReadableIOStream) -> None: p.start() # Close the file descriptor of the main thread, the one from the process will still be alive - self._output.endWriting() + self._output.end_writing() class IOReaderHook(IOHook): @@ -65,10 +70,10 @@ def __pas_along_original_stream( break output1_stream.write(data) output2_stream.write(data) - output1_stream.endWriting() - output2_stream.endWriting() def start_hook_function(self, input_stream: ReadableIOStream) -> None: + + # A process is spawned to duplicate the input stream for the reading function duplication_process = Process( target=self.__pas_along_original_stream, args=( @@ -79,6 +84,8 @@ def start_hook_function(self, input_stream: ReadableIOStream) -> None: name=self.__name + " pasalong", daemon=True, ) + + # A process is spawned to keep the hookfunction running on the stream reader_hook_process = Process( target=self.hook_function, args=(self._stream_duplicate,), @@ -88,12 +95,16 @@ def start_hook_function(self, input_stream: ReadableIOStream) -> None: duplication_process.start() # Close the file descriptor of the main thread, the one from the process will still be alive - self._output.endWriting() - self._stream_duplicate.endWriting() + self._output.end_writing() + self._stream_duplicate.end_writing() reader_hook_process.start() class IOResultHook(IOHook): + """Hook that expects a function of the form + Callable[[ReadableIOStream, PipeIOStream, Queue[Any]] + can be used as a writer hook with the added functionality of + being being able to use the queue as output""" def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream, Queue[Any]], None]): self.__queue: Queue[Any] = Queue() self.hook_function = hook_function @@ -110,7 +121,7 @@ def start_hook_function(self, input_stream: ReadableIOStream) -> None: p.start() # Close the file descriptor of the main thread, the one from the process will still be alive - self._output.endWriting() + self._output.end_writing() def get_result(self) -> Any: return self.__queue.get() @@ -122,6 +133,7 @@ def __init__(self, std_out_hook: IOHook | None, std_err_hook: IOHook | None): self._std_err_hook = std_err_hook def attatch(self, output: Output) -> Output: + """attatch the hooks to the IOStreams or pass them allong if there is no hook""" std_out = output.std_out std_err = output.std_err if self._std_out_hook: @@ -137,17 +149,17 @@ class MergeErrToOut(OutputHook): def __init__(self): self.std_out = PipeIOStream() - def mergehookfunction(self, input_object: ReadableIOStream, _: WritableIOStream): + def __mergehookfunction(self, input_object: ReadableIOStream, _: WritableIOStream): outline = input_object.read_line() while outline: self.std_out.write(outline) outline = input_object.read_line() def attatch(self, output: Output) -> Output: - stdout_hook = IOWriterHook(self.mergehookfunction) - stderr_hook = IOWriterHook(self.mergehookfunction) + stdout_hook = IOWriterHook(self.__mergehookfunction) + stderr_hook = IOWriterHook(self.__mergehookfunction) stdout_hook.start_hook_function(output.std_out) stderr_hook.start_hook_function(output.std_err) - self.std_out.endWriting() + self.std_out.end_writing() return Output(self.std_out, EmptyIOStream()) diff --git a/benchkit/shell/CommunicationLayer/OutputObject.py b/benchkit/shell/command_execution/io/output.py similarity index 55% rename from benchkit/shell/CommunicationLayer/OutputObject.py rename to benchkit/shell/command_execution/io/output.py index bb042e95..07f5c36b 100644 --- a/benchkit/shell/CommunicationLayer/OutputObject.py +++ b/benchkit/shell/command_execution/io/output.py @@ -4,8 +4,11 @@ from abc import ABC from typing import IO -from benchkit.shell.CommunicationLayer.IO_stream import ReadableIOStream, SshIOStream - +from benchkit.shell.command_execution.io.stream import ( + EmptyIOStream, + ReadableIOStream, + PopenIOStream +) class Output(ABC): """interface to communicate with command output on all platforms, @@ -13,12 +16,13 @@ class Output(ABC): def __init__(self, std_out: ReadableIOStream | None, std_err: ReadableIOStream | None): if std_out is None: - std_out = SshIOStream(None) + std_out = EmptyIOStream() self.std_out: ReadableIOStream = std_out if std_err is None: - std_err = SshIOStream(None) + std_err = EmptyIOStream() self.std_err: ReadableIOStream = std_err -def sshOutput(out: IO[bytes] | None, err: IO[bytes] | None) -> Output: - return Output(SshIOStream(out), SshIOStream(err)) +def popen_get_output(out: IO[bytes] | None, err: IO[bytes] | None) -> Output: + """Helper function to convert popen handles to an Output""" + return Output(PopenIOStream(out) if out else None, PopenIOStream(err) if err else None) diff --git a/benchkit/shell/CommunicationLayer/IO_stream.py b/benchkit/shell/command_execution/io/stream.py similarity index 70% rename from benchkit/shell/CommunicationLayer/IO_stream.py rename to benchkit/shell/command_execution/io/stream.py index 4dd8f7c3..d0c87939 100644 --- a/benchkit/shell/CommunicationLayer/IO_stream.py +++ b/benchkit/shell/command_execution/io/stream.py @@ -7,20 +7,23 @@ class WritableIOStream(ABC): + """Interface to write any form of data that can be made + compatible by implementing write and end_writing""" + @abstractmethod def write(self, bytes_to_write: bytes) -> None: - pass + """write bytes to the given IOStream needs to be implemented depending on what it is""" @abstractmethod - def endWriting(self) -> None: - pass + def end_writing(self) -> None: + """signal that the IOStream can be closed""" class ReadableIOStream(ABC): - """interface to communicate with command output on all platforms, - functions are due to compatibility""" + """interface to read from anny form of data that can be made + compatible by implementing _read_bytes""" - def __init__(self): + def __init__(self) -> None: self.__buffer: bytes = b"" @abstractmethod @@ -28,7 +31,8 @@ def _read_bytes(self, amount_of_bytes: int) -> bytes: pass def read(self, amount_of_bytes: int) -> bytes: - """reads at most amount_of_bytes from the available stdout""" + """reads at most amount_of_bytes from the available stdout + returns the current buffer before it attemts to read more bytes""" if self.__buffer: ret = self.__buffer self.__buffer = b"" @@ -36,6 +40,7 @@ def read(self, amount_of_bytes: int) -> bytes: return self._read_bytes(amount_of_bytes) def read_line(self) -> bytes: + """reads one line overflows into __buffer""" byt = self.read(10) while byt: sp = byt.split(b"\n", 1) @@ -46,8 +51,9 @@ def read_line(self) -> bytes: return byt -class SshIOStream(ReadableIOStream): - def __init__(self, stream: IO[bytes] | None): +class PopenIOStream(ReadableIOStream): + """Class that can interact with the stdout type objects given by Popen""" + def __init__(self, stream: IO[bytes]): self.__stream = stream super().__init__() @@ -58,6 +64,7 @@ def _read_bytes(self, amount_of_bytes: int) -> bytes: class StringIOStream(ReadableIOStream): + """Class to convert a string to an IOStream so they can be interchanged""" def __init__(self, string: str, encoding: str = "utf-8"): self.byte_string = string.encode(encoding) self.length = len(self.byte_string) @@ -76,6 +83,7 @@ def _read_bytes(self, amount_of_bytes: int): class EmptyIOStream(ReadableIOStream): + "Class to create an empty IOStream" def __init__(self): super().__init__() @@ -84,7 +92,7 @@ def _read_bytes(self, amount_of_bytes: int): class PipeIOStream(ReadableIOStream, WritableIOStream): - """A way to create a fileStream that can be used as a CommandOutput by other functions""" + """A readable and writable IOStream that is used to communicate between hooks mostly""" def __init__(self) -> None: self.reader, self.writer = os.pipe() @@ -95,7 +103,7 @@ def __init__(self) -> None: def write(self, bytes_to_write: bytes) -> None: os.write(self.writer, bytes_to_write) - def endWriting(self) -> None: + def end_writing(self) -> None: os.close(self.writer) def _read_bytes(self, amount_of_bytes: int) -> bytes: @@ -103,6 +111,8 @@ def _read_bytes(self, amount_of_bytes: int) -> bytes: def try_converting_bystring_to_readable_characters(bytestring: bytes) -> str | bytes: + """ function that will try to convert a bytestring to string + if it fails it will return back the bytestring so nothing is lost""" try: return bytestring.decode("utf-8") except UnicodeDecodeError: diff --git a/benchkit/shell/shell.py b/benchkit/shell/shell.py index 7225978b..1502fe30 100644 --- a/benchkit/shell/shell.py +++ b/benchkit/shell/shell.py @@ -10,20 +10,20 @@ import sys from typing import Iterable, List, Optional -from benchkit.shell.ast_shell_out import execute_command -from benchkit.shell.CommunicationLayer.CommandProcess import CommandProcess -from benchkit.shell.CommunicationLayer.hooks.basic_hooks import ( +from benchkit.shell.command_execution.execute import execute_command +from benchkit.shell.command_execution.command_process import CommandProcess +from benchkit.shell.command_execution.io.hooks.basic_hooks import ( logger_line_hook, std_out_result_void_err, void_hook, void_input, ) -from benchkit.shell.CommunicationLayer.hooks.hook import ( +from benchkit.shell.command_execution.io.hooks.hook import ( IOWriterHook, MergeErrToOut, OutputHook, ) -from benchkit.shell.CommunicationLayer.IO_stream import ( +from benchkit.shell.command_execution.io.stream import ( EmptyIOStream, PipeIOStream, ReadableIOStream, diff --git a/tests/command_execution/execute_command/ast_shell.py b/tests/command_execution/execute_command/ast_shell.py deleted file mode 100644 index 05379f55..00000000 --- a/tests/command_execution/execute_command/ast_shell.py +++ /dev/null @@ -1,339 +0,0 @@ -# Copyright (C) 2024 Vrije Universiteit Brussel. All rights reserved. -# SPDX-License-Identifier: MIT - -import itertools -import pathlib -import re -import subprocess -import unittest -from typing import Any - -from tests.command_execution.execute_command.util import TestTimeout, script_path_string, timeout - -from benchkit.shell.shell import shell_out - -# Due to print statements being inside of threads unittest does -# not allow us to check the output of stdout. -# We will have to write tests in a different way to check what the user sees. -# To this end these tests only test functionality - - -def get_arguments_dict_list( - overwrite_arguments_dict: dict[str, Any] | None = None, include_cosmetic: bool = True -): - if overwrite_arguments_dict is None: - overwrite_arguments_dict = {} - - arguments_dict = {} - if include_cosmetic: - arguments_dict = { - "print_output": [True, False], - "output_is_log": [True, False], - } - - for argument_key in overwrite_arguments_dict: - arguments_dict[argument_key] = overwrite_arguments_dict[argument_key] - - keys = [] - arguments = [] - - for key, arugments in arguments_dict.items(): - keys.append(key) - arguments += [arugments] - argument_permutations = itertools.product(*arguments) - result_list = [] - for argument_permutation in list(argument_permutations): - result_list.append(dict(zip(keys, argument_permutation))) - return result_list - - -class BasicShellTests(unittest.TestCase): - - # @unittest.skip("disabled for debugging") - def test_echo(self): - """Basic tests to see if the command-line can execute a given command - and return the correct output given a range of arguments""" - argument_list = get_arguments_dict_list( - { - "current_dir": [None, pathlib.Path(__file__).parent.resolve()], - "environment": [None, {"test": "test"}], - "timeout": [None, 20], - "ignore_ret_codes": [(), (1,)], - } - ) - for args in argument_list: - with timeout(1): - # test echo with multiple parameters to make sure none mess up the result - a = shell_out( - ["echo", "benchkit_echo_test", str(args)], - **args, - ) - print(a) - expeced_result = re.sub(r"\'", "", f"benchkit_echo_test {str(args)}") - print(expeced_result) - self.assertEqual( - a, - f"benchkit_echo_test {str(args)}\n", - "shell does not provide the right output in the result", - ) - - # @unittest.skip("disabled for debugging") - def test_run_forever(self): - """Test to make sure that commands do not exit prematurely""" - argument_list = get_arguments_dict_list( - { - "current_dir": [None, pathlib.Path(__file__).parent.resolve()], - "environment": [None, {"test": "test"}], - "timeout": [None, 20], - "ignore_ret_codes": [(), (1,)], - } - ) - for args in argument_list: - with self.assertRaises(TestTimeout): - with timeout(5): - shell_out(script_path_string("runForever"), **args) - - # @unittest.skip("disabled for debugging") - def test_timeout(self): - """testing the timeout argument""" - argument_list = get_arguments_dict_list( - { - "current_dir": [None, pathlib.Path(__file__).parent.resolve()], - "environment": [None, {"test": "test"}], - "ignore_ret_codes": [(), (1,)], - "timeout": [1, 2], # tested argument - } - ) - # making sure that a program times out due to the argument - for args in argument_list: - with timeout(5): - with self.assertRaises(subprocess.TimeoutExpired): - shell_out(script_path_string("runForever"), **args) - - argument_list = get_arguments_dict_list( - { - "current_dir": [None, pathlib.Path(__file__).parent.resolve()], - "environment": [None, {"test": "test"}], - "ignore_ret_codes": [(), (1,)], - "timeout": [6], # tested argument - } - ) - - # making sure that it does not time out before the given timeout - for args in argument_list: - with self.assertRaises(TestTimeout): - with timeout(5): - shell_out(script_path_string("runForever"), **args) - - # @unittest.skip("disabled for debugging") - def test_input(self): - """testing the use of the std_input parameter""" - argument_list = get_arguments_dict_list( - { - "current_dir": [None, pathlib.Path(__file__).parent.resolve()], - "environment": [None, {"test": "test"}], - "ignore_ret_codes": [(), (1,)], - } - ) - - for args in argument_list: - with timeout(10): - out = shell_out( - script_path_string("writeBack"), - std_input=f"benchkit input test {str(args)}\n", - **args, - ) - self.assertEqual( - out, - f"benchkit input test {str(args)}\n", - f"recieved{out}", - ) - - @unittest.skip("disabled for debugging") - def test_command_blocks_io_overfull(self): - """Overfull internal IO buffers would halt the execution of the command - Here we test whether or not this happens in our implementation - """ - argument_list = get_arguments_dict_list( - { - "current_dir": [None, pathlib.Path(__file__).parent.resolve()], - "environment": [None, {"test": "test"}], - "timeout": [None, 20], - "ignore_ret_codes": [(), (1,)], - } - ) - - for args in argument_list: - try: - with timeout(20): - # tests for filling the std_err - shell_out(script_path_string("fillErrThenOut"), **args) - except TestTimeout: - self.fail( - f"the command got halted during excecution for \ - {script_path_string('fillErrThenOut')} with args: {args}" - ) - raise TestTimeout - - try: - with timeout(20): - # tests for filling the std_io - shell_out(script_path_string("fillOutThenErr"), **args) - except TestTimeout: - self.fail("the command got halted during excecution") - raise TestTimeout - - # TODO: success value should be tested at lower abstraction level - @unittest.skip("disabled for debugging") - def test_ignore_return_codes(self): - """Overfull internal IO buffers would halt the execution of the command - Here we test whether or not this happens in our implementation - """ - - # test that success value does not throw an error regardles of ignore ret_codes - argument_list = get_arguments_dict_list( - { - "current_dir": [None, pathlib.Path(__file__).parent.resolve()], - "environment": [None, {"test": "test"}], - "timeout": [None, 20], - "ignore_ret_codes": [ - (), - ( - 1, - 4, - ), - ( - 2, - 7, - ), - ( - 4, - 5, - ), - (63,), - (0,), - ], - "success_value": [1, 6, 53, 19], - } - ) - - for args in argument_list: - try: - with timeout(20): - # tests for filling the std_err - retcode_to_output = args["success_value"] - shell_out( - script_path_string("returnExitCode"), - **args, - std_input=f"{retcode_to_output}\n", - ) - except TestTimeout: - self.fail( - f"the command got halted during excecution for \ - {script_path_string('fillErrThenOut')} with args: {args}" - ) - raise TestTimeout - - # test that error codes in ignore list do not throw error - argument_list = get_arguments_dict_list( - { - "current_dir": [None, pathlib.Path(__file__).parent.resolve()], - "environment": [None, {"test": "test"}], - "timeout": [None, 20], - "ignore_ret_codes": [ - (), - ( - 1, - 4, - ), - ( - 2, - 7, - ), - ( - 4, - 5, - ), - (63,), - (0,), - ], - "output_is_log": [True], - } - ) - - for args in argument_list: - try: - with timeout(20): - retcode_to_output = ( - args["ignore_ret_codes"][len(args["ignore_ret_codes"]) - 1 % 3] - if len(args["ignore_ret_codes"]) > 0 - else 0 - ) - shell_out( - script_path_string("returnExitCode"), - **args, - std_input=f"{retcode_to_output}\n", - ) - except TestTimeout: - self.fail( - f"the command got halted during excecution for \ - {script_path_string('fillErrThenOut')} with args: {args}" - ) - raise TestTimeout - - # test that error code still throws an error - argument_list = get_arguments_dict_list( - { - "current_dir": [None, pathlib.Path(__file__).parent.resolve()], - "environment": [None, {"test": "test"}], - "timeout": [None, 20], - "ignore_ret_codes": [ - (), - ( - 1, - 4, - ), - ( - 2, - 7, - ), - ( - 4, - 5, - ), - (63,), - (0,), - ], - "success_value": [0, 1, 6, 53, 19], - } - ) - - for args in argument_list: - try: - with self.assertRaises(subprocess.CalledProcessError): - with timeout(20): - # tests for filling the std_err - retcode_to_output = ( - 3 - + args["success_value"] - + ( - args["ignore_ret_codes"][len(args["ignore_ret_codes"]) - 1 % 3] - if len(args["ignore_ret_codes"]) > 0 - else args["success_value"] - ) - ) - shell_out( - script_path_string("returnExitCode"), - **args, - std_input=f"{retcode_to_output}\n", - ) - except TestTimeout: - self.fail( - f"the command got halted during excecution for \ - {script_path_string('fillErrThenOut')} with args: {args}" - ) - raise TestTimeout - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/command_execution/execute_command/other_tests.py b/tests/command_execution/execute_command/other_tests.py index c4507a2c..fdda5e62 100644 --- a/tests/command_execution/execute_command/other_tests.py +++ b/tests/command_execution/execute_command/other_tests.py @@ -7,133 +7,62 @@ from pathlib import Path import shlex import subprocess -import sys from time import sleep from typing import Any -from benchkit.shell.CommunicationLayer.hooks.hook import IOResultHook, MergeErrToOut, OutputHook +from benchkit.shell.command_execution.io.hooks.basic_hooks import logger_line_hook, std_out_result_void_err, void_hook +from benchkit.shell.command_execution.io.hooks.hook import MergeErrToOut from tests.command_execution.execute_command.util import script_path_string -from benchkit.shell.ast_shell_out import execute_command -from benchkit.shell.commandAST import command as makecommand -from benchkit.shell.commandAST.nodes.variable_node import RuntimeVariable -from benchkit.shell.commandAST.visitor import ( - execute_on_remote, - getString, - inline, - printAst, - resolveAllVariablesWithDict, -) -from benchkit.shell.CommunicationLayer.hooks.basic_hooks import ( - logger_line_hook, - std_out_result_void_err, - stream_prepend_hook, - void_hook, - write_to_file_hook, -) -from benchkit.shell.CommunicationLayer.IO_stream import PipeIOStream, ReadableIOStream, StringIOStream, WritableIOStream -from benchkit.shell.shell import pipe_shell_out, shell_interactive, shell_out, split_on_pipe - +from benchkit.shell.command_execution.execute import execute_command -def commandtests(): - - commandres = makecommand.command("'ls -R'", ["arg0", "arg1"]) - print("-------------------------------------------") - printAst(commandres) - commandres = makecommand.command("'ls -R '", ["arg0", "arg1"]) - print("-------------------------------------------") - printAst(commandres) - commandres = makecommand.command("' ls -R'", ["arg0", "arg1"]) - print("-------------------------------------------") - printAst(commandres) - commandres = makecommand.command("ls -R", ["arg0", "arg1"]) - print("-------------------------------------------") - printAst(commandres) - commandres = makecommand.command("ls -R ", ["arg0", "arg1"]) - print("-------------------------------------------") - printAst(commandres) - commandres = makecommand.command(" ls -R", ["arg0", "arg1"]) - print("-------------------------------------------") - printAst(commandres) - commandres = makecommand.command("ls -R", ["arg0", "arg1"]) - print("-------------------------------------------") - printAst(commandres) - commandres = makecommand.command("ls", ["arg0", "arg1"]) - print("-------------------------------------------") - printAst(commandres) - print("-------------------------------------------") - commandres = makecommand.command("ls -R", [RuntimeVariable("QQ", [1, 2]), "arg1"]) - - -""" -Tests for the file to show that the functions are working -""" - - -def localtests(): - amount_of_time_to_sleep = RuntimeVariable("amountOfTimeToSleep", [1, 2, 5, 40]) - main_command_ast = makecommand.command("sleep", [amount_of_time_to_sleep]) - full_command = makecommand.command("perf stat", [inline(main_command_ast), "-a"]) - remote_command = execute_on_remote(full_command, "user@host", port=57429) - printAst(remote_command) - - resolved_command = resolveAllVariablesWithDict( - remote_command, - { - "amountOfTimeToSleep": "40", - }, - ) - - string = getString(resolved_command) - - print(string) - - -def newtest(): - c = makecommand.command("ssh user@host -p 57429 -t 'perf stat sleep 1'") - printAst(c) - string = getString(c) - print(string) - - -def runtest(): - t = shlex.split("perf stat 'sleep 10' -a") - print(t) - - main_command_ast = makecommand.command("sleep", ["1"]) - full_command = makecommand.command("perf stat", [inline(main_command_ast)]) - remote_command = execute_on_remote(full_command, "user@host", port=57429) - printAst(remote_command) - string = getString(remote_command) - print(string) - local_proc_1 = subprocess.Popen( - string, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE - ) - outs, errs = local_proc_1.communicate() - retcode = local_proc_1.poll() - output = outs - print(retcode) - print(str(output.decode("utf-8"))) +from benchkit.shell.command_execution.io.stream import PipeIOStream, ReadableIOStream, StringIOStream, WritableIOStream +from benchkit.shell.shell import pipe_shell_out, shell_interactive, shell_out, split_on_pipe def shell_test(): + command = [script_path_string("runForever")] log_ls = logger_line_hook( - f"\033[34m[OUT | sudo]\033[0m" + " {}", - f"\033[91m[ERR | sudo]\033[0m" + " {}", - ) - filewriterIO = write_to_file_hook(Path("/tmp/testfile.txt")) - filewriter = OutputHook(filewriterIO,None) + f"\033[34m[OUT | ls]\033[0m" + " {}", + f"\033[91m[ERR | ls]\033[0m" + " {}", + ) - a = execute_command( - shlex.split("ssh aaronb@soft67.vub.ac.be 'sudo -S -k ls'"), - ordered_input_hooks=[stream_prepend_hook(StringIOStream("123456789"))], - ordered_output_hooks=[log_ls,MergeErrToOut(),filewriter,void_hook()] - ) + outobj, outhook = std_out_result_void_err() + + merge = MergeErrToOut() + + ls_command = execute_command(command, + timeout=2, + ordered_output_hooks=[ + merge, + log_ls, + # outhook, + void_hook(), + ] + ) + try: + ls_command.get_return_code() + except: + sleep(5) + + + # log_ls = logger_line_hook( + # f"\033[34m[OUT | sudo]\033[0m" + " {}", + # f"\033[91m[ERR | sudo]\033[0m" + " {}", + # ) + # filewriterIO = write_to_file_hook(Path("/tmp/testfile.txt")) + # filewriter = OutputHook(filewriterIO,None) + + # a = execute_command( + # shlex.split("ssh aaronb@soft67.vub.ac.be 'sudo -S -k ls'"), + # ordered_input_hooks=[stream_prepend_hook(StringIOStream("123456789"))], + # ordered_output_hooks=[log_ls,MergeErrToOut(),filewriter,void_hook()] + # ) - a.get_return_code() + # a.get_return_code() - sleep(1) + # sleep(1) # a = pipe_shell_out('sudo perf stat ls') diff --git a/tests/command_execution/execute_command/test_execute_command_function.py b/tests/command_execution/execute_command/test_execute_command_function.py index c659e78a..2a543152 100644 --- a/tests/command_execution/execute_command/test_execute_command_function.py +++ b/tests/command_execution/execute_command/test_execute_command_function.py @@ -3,9 +3,9 @@ from subprocess import CalledProcessError import unittest -from benchkit.shell.CommunicationLayer.IO_stream import StringIOStream +from benchkit.shell.command_execution.io.stream import StringIOStream from tests.command_execution.execute_command.util import TestTimeout, generate_test_hook_lists, get_arguments_dict_list, script_path_string, timeout -from benchkit.shell.ast_shell_out import execute_command +from benchkit.shell.command_execution.execute import execute_command class FunctionalExecutionTests(unittest.TestCase): diff --git a/tests/command_execution/execute_command/test_execute_command_runtime.py b/tests/command_execution/execute_command/test_execute_command_runtime.py index f71fd0c8..ce95f99a 100644 --- a/tests/command_execution/execute_command/test_execute_command_runtime.py +++ b/tests/command_execution/execute_command/test_execute_command_runtime.py @@ -4,7 +4,7 @@ from subprocess import TimeoutExpired import tracemalloc import unittest -from benchkit.shell.ast_shell_out import execute_command +from benchkit.shell.command_execution.execute import execute_command from tests.command_execution.execute_command.util import TestTimeout, generate_test_hook_lists, get_arguments_dict_list, script_path_string, timeout tracemalloc.start() @@ -41,12 +41,12 @@ def test_timeout(self) -> None: # result gathering p.get_return_code() - + except TestTimeout: self.fail( "execution timed out, but not by the timeout argument" ) - + # @unittest.skip("disabled for debugging") def test_fill_std_err(self) -> None: """test to see if the command times out after the given time period""" @@ -76,7 +76,7 @@ def test_fill_std_err(self) -> None: # result gathering p.get_return_code() - + except TestTimeout: self.fail( "execution timed out" @@ -111,7 +111,7 @@ def test_fill_std_out(self) -> None: # result gathering p.get_return_code() - + except TestTimeout: self.fail( "execution timed out" diff --git a/tests/command_execution/execute_command/util.py b/tests/command_execution/execute_command/util.py index 952ecd06..05d4a054 100644 --- a/tests/command_execution/execute_command/util.py +++ b/tests/command_execution/execute_command/util.py @@ -6,9 +6,9 @@ import signal from typing import Any, Dict, List, Optional, Tuple -from benchkit.shell.CommunicationLayer.IO_stream import ReadableIOStream, WritableIOStream -from benchkit.shell.CommunicationLayer.hooks.basic_hooks import create_stream_line_logger_hook, create_voiding_result_hook, logger_line_hook, void_hook -from benchkit.shell.CommunicationLayer.hooks.hook import IOHook, IOResultHook, IOWriterHook, OutputHook +from benchkit.shell.command_execution.io.stream import ReadableIOStream, WritableIOStream +from benchkit.shell.command_execution.io.hooks.basic_hooks import create_stream_line_logger_hook, create_voiding_result_hook, logger_line_hook, void_hook +from benchkit.shell.command_execution.io.hooks.hook import IOHook, IOResultHook, IOWriterHook, OutputHook class TestTimeout(Exception): diff --git a/tests/command_execution/readme.md b/tests/command_execution/readme.md index 7940114a..b2f21a57 100644 --- a/tests/command_execution/readme.md +++ b/tests/command_execution/readme.md @@ -7,13 +7,10 @@ There is a `configure.sh` script. If run from this directory it wil create a wor ## Running the tests Run `python -m unittest ast_shell -v` in this folder to run the current tests. -This takes about 1400 seconds for the current folder. It will spam the terminal to make it not do this add `-b` to the command. other_tests.py is a file containing some personal testing code and will be converted to proper test cases at a later date ## Todo -- Smaller unit tests for the internal structures -- Tests for the async ast-shell -- Try something that takes less time for the timeout tests as they would fail on slower systems aswell. \ No newline at end of file +- Smaller unit tests for the internal structures \ No newline at end of file From 7c8603e60f43ebfc59ef020d1a6735f447363362 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Mon, 30 Jun 2025 13:13:33 +0200 Subject: [PATCH 57/71] give naming option to IOHooks --- .../shell/command_execution/io/hooks/hook.py | 59 +++++++++---------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/benchkit/shell/command_execution/io/hooks/hook.py b/benchkit/shell/command_execution/io/hooks/hook.py index b6d738ec..2ff976d1 100644 --- a/benchkit/shell/command_execution/io/hooks/hook.py +++ b/benchkit/shell/command_execution/io/hooks/hook.py @@ -5,7 +5,7 @@ from abc import ABC, abstractmethod from multiprocessing import Process, Queue -from typing import Any, Callable +from typing import Any, Callable, Optional from benchkit.shell.command_execution.io.stream import ( EmptyIOStream, @@ -18,8 +18,9 @@ class IOHook(ABC): """basic interface that each hook needs to implement""" - def __init__(self): + def __init__(self,name:str): self._output = PipeIOStream() + self.name=name @abstractmethod def start_hook_function(self, input_stream: ReadableIOStream) -> None: @@ -33,18 +34,18 @@ class IOWriterHook(IOHook): """Hook that expects a function of the form Callable[[ReadableIOStream, PipeIOStream] intended as a general purpouse stream manupulator""" - def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream], None]): + def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream], None], name:Optional[str] = None): self.hook_function = hook_function - self.__name = self.hook_function.__name__ - super().__init__() + if not name: + name = self.hook_function.__name__ + super().__init__(name) def start_hook_function(self, input_stream: ReadableIOStream) -> None: # A process is spawned to keep the hookfunction running on the stream p = Process( target=self.hook_function, args=(input_stream, self._output), - name=self.__name, - daemon=True, + name=self.name, ) p.start() @@ -54,22 +55,22 @@ def start_hook_function(self, input_stream: ReadableIOStream) -> None: class IOReaderHook(IOHook): - def __init__(self, hook_function: Callable[[ReadableIOStream], None]): + def __init__(self, hook_function: Callable[[ReadableIOStream], None], name:Optional[str]): self.hook_function = hook_function self._stream_duplicate = PipeIOStream() - self.__name = self.hook_function.__name__ - super().__init__() + if not name: + name = self.hook_function.__name__ + super().__init__(name) @staticmethod def __pas_along_original_stream( - input_stream: ReadableIOStream, output1_stream: PipeIOStream, output2_stream: PipeIOStream + input_stream: ReadableIOStream, output1_stream: WritableIOStream, output2_stream: WritableIOStream ): - while True: - data = input_stream.read(1) - if not data: - break + data = input_stream.read(1) + while data: output1_stream.write(data) output2_stream.write(data) + data = input_stream.read(1) def start_hook_function(self, input_stream: ReadableIOStream) -> None: @@ -81,23 +82,21 @@ def start_hook_function(self, input_stream: ReadableIOStream) -> None: self._output, self._stream_duplicate, ), - name=self.__name + " pasalong", - daemon=True, + name=self.name + " pasalong", ) # A process is spawned to keep the hookfunction running on the stream reader_hook_process = Process( target=self.hook_function, args=(self._stream_duplicate,), - name=self.__name, - daemon=True, + name=self.name, ) duplication_process.start() + reader_hook_process.start() # Close the file descriptor of the main thread, the one from the process will still be alive self._output.end_writing() self._stream_duplicate.end_writing() - reader_hook_process.start() class IOResultHook(IOHook): @@ -105,18 +104,18 @@ class IOResultHook(IOHook): Callable[[ReadableIOStream, PipeIOStream, Queue[Any]] can be used as a writer hook with the added functionality of being being able to use the queue as output""" - def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream, Queue[Any]], None]): + def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream, Queue[Any]], None], name:Optional[str] = None): self.__queue: Queue[Any] = Queue() self.hook_function = hook_function - self.__name = self.hook_function.__name__ - super().__init__() + if not name: + name = self.hook_function.__name__ + super().__init__(name) def start_hook_function(self, input_stream: ReadableIOStream) -> None: p = Process( target=self.hook_function, args=(input_stream, self._output, self.__queue), - name=self.__name, - daemon=True, + name=self.name, ) p.start() @@ -146,8 +145,10 @@ def attatch(self, output: Output) -> Output: class MergeErrToOut(OutputHook): - def __init__(self): + def __init__(self) -> None: self.std_out = PipeIOStream() + self._std_err_hook:IOWriterHook = IOWriterHook(self.__mergehookfunction) + self._std_out_hook:IOWriterHook = IOWriterHook(self.__mergehookfunction) def __mergehookfunction(self, input_object: ReadableIOStream, _: WritableIOStream): outline = input_object.read_line() @@ -156,10 +157,8 @@ def __mergehookfunction(self, input_object: ReadableIOStream, _: WritableIOStrea outline = input_object.read_line() def attatch(self, output: Output) -> Output: - stdout_hook = IOWriterHook(self.__mergehookfunction) - stderr_hook = IOWriterHook(self.__mergehookfunction) - stdout_hook.start_hook_function(output.std_out) - stderr_hook.start_hook_function(output.std_err) + self._std_err_hook.start_hook_function(output.std_out) + self._std_out_hook.start_hook_function(output.std_err) self.std_out.end_writing() return Output(self.std_out, EmptyIOStream()) From a91040ad69cddf24b47d31e5cca7e661e480e693 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Mon, 30 Jun 2025 13:37:59 +0200 Subject: [PATCH 58/71] add the missing None --- benchkit/shell/command_execution/io/hooks/hook.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchkit/shell/command_execution/io/hooks/hook.py b/benchkit/shell/command_execution/io/hooks/hook.py index 2ff976d1..0e30e5bb 100644 --- a/benchkit/shell/command_execution/io/hooks/hook.py +++ b/benchkit/shell/command_execution/io/hooks/hook.py @@ -55,7 +55,7 @@ def start_hook_function(self, input_stream: ReadableIOStream) -> None: class IOReaderHook(IOHook): - def __init__(self, hook_function: Callable[[ReadableIOStream], None], name:Optional[str]): + def __init__(self, hook_function: Callable[[ReadableIOStream], None], name:Optional[str] = None): self.hook_function = hook_function self._stream_duplicate = PipeIOStream() if not name: From c4e9acc60fb63ed8897039dc73911a53e2b4df93 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Mon, 30 Jun 2025 14:02:01 +0200 Subject: [PATCH 59/71] do the minimal changes to be threaded instead of Processes --- benchkit/shell/command_execution/execute.py | 18 +++++++++--------- .../shell/command_execution/io/hooks/hook.py | 16 ++++++---------- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/benchkit/shell/command_execution/execute.py b/benchkit/shell/command_execution/execute.py index 9084a34c..f970ed20 100755 --- a/benchkit/shell/command_execution/execute.py +++ b/benchkit/shell/command_execution/execute.py @@ -68,13 +68,13 @@ def pasalong(input_stream: ReadableIOStream, _: WritableIOStream) -> None: process.stdin.write(outline) process.stdin.flush() outline = input_stream.read(1) - process.stdin.close() + # process.stdin.close() if std_input is not None: hook = IOWriterHook(pasalong) hook.start_hook_function(std_input) - if process.stdin is not None: - process.stdin.close() + # if process.stdin is not None: + # process.stdin.close() # 3) manipulate teh output stream using the orderd output hooks command_output = popen_get_output(process.stdout, process.stderr) @@ -84,12 +84,12 @@ def pasalong(input_stream: ReadableIOStream, _: WritableIOStream) -> None: command_output = outhook.attatch(command_output) # close all the main thread file descriptors - if process.stdout is not None: - process.stdout.close() - if process.stderr is not None: - process.stderr.close() - if process.stdin is not None: - process.stdin.close() + # if process.stdout is not None: + # process.stdout.close() + # if process.stderr is not None: + # process.stderr.close() + # if process.stdin is not None: + # process.stdin.close() # 4) construct the object we can use to monitor the process return CommandProcess( diff --git a/benchkit/shell/command_execution/io/hooks/hook.py b/benchkit/shell/command_execution/io/hooks/hook.py index 0e30e5bb..ba3697b4 100644 --- a/benchkit/shell/command_execution/io/hooks/hook.py +++ b/benchkit/shell/command_execution/io/hooks/hook.py @@ -5,6 +5,7 @@ from abc import ABC, abstractmethod from multiprocessing import Process, Queue +from threading import Thread from typing import Any, Callable, Optional from benchkit.shell.command_execution.io.stream import ( @@ -20,6 +21,7 @@ class IOHook(ABC): """basic interface that each hook needs to implement""" def __init__(self,name:str): self._output = PipeIOStream() + self._stream_duplicate = PipeIOStream() self.name=name @abstractmethod @@ -42,7 +44,7 @@ def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream], Non def start_hook_function(self, input_stream: ReadableIOStream) -> None: # A process is spawned to keep the hookfunction running on the stream - p = Process( + p = Thread( target=self.hook_function, args=(input_stream, self._output), name=self.name, @@ -50,14 +52,12 @@ def start_hook_function(self, input_stream: ReadableIOStream) -> None: p.start() # Close the file descriptor of the main thread, the one from the process will still be alive - self._output.end_writing() class IOReaderHook(IOHook): def __init__(self, hook_function: Callable[[ReadableIOStream], None], name:Optional[str] = None): self.hook_function = hook_function - self._stream_duplicate = PipeIOStream() if not name: name = self.hook_function.__name__ super().__init__(name) @@ -75,7 +75,7 @@ def __pas_along_original_stream( def start_hook_function(self, input_stream: ReadableIOStream) -> None: # A process is spawned to duplicate the input stream for the reading function - duplication_process = Process( + duplication_process = Thread( target=self.__pas_along_original_stream, args=( input_stream, @@ -86,7 +86,7 @@ def start_hook_function(self, input_stream: ReadableIOStream) -> None: ) # A process is spawned to keep the hookfunction running on the stream - reader_hook_process = Process( + reader_hook_process = Thread( target=self.hook_function, args=(self._stream_duplicate,), name=self.name, @@ -95,8 +95,6 @@ def start_hook_function(self, input_stream: ReadableIOStream) -> None: duplication_process.start() reader_hook_process.start() # Close the file descriptor of the main thread, the one from the process will still be alive - self._output.end_writing() - self._stream_duplicate.end_writing() class IOResultHook(IOHook): @@ -112,7 +110,7 @@ def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream, Queu super().__init__(name) def start_hook_function(self, input_stream: ReadableIOStream) -> None: - p = Process( + p = Thread( target=self.hook_function, args=(input_stream, self._output, self.__queue), name=self.name, @@ -120,7 +118,6 @@ def start_hook_function(self, input_stream: ReadableIOStream) -> None: p.start() # Close the file descriptor of the main thread, the one from the process will still be alive - self._output.end_writing() def get_result(self) -> Any: return self.__queue.get() @@ -159,6 +156,5 @@ def __mergehookfunction(self, input_object: ReadableIOStream, _: WritableIOStrea def attatch(self, output: Output) -> Output: self._std_err_hook.start_hook_function(output.std_out) self._std_out_hook.start_hook_function(output.std_err) - self.std_out.end_writing() return Output(self.std_out, EmptyIOStream()) From ee52840714a78167dafc9880c427d3ae02175969 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Mon, 30 Jun 2025 21:35:14 +0200 Subject: [PATCH 60/71] move pipe to logical location --- benchkit/shell/command_execution/io/hooks/hook.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchkit/shell/command_execution/io/hooks/hook.py b/benchkit/shell/command_execution/io/hooks/hook.py index ba3697b4..04074ed1 100644 --- a/benchkit/shell/command_execution/io/hooks/hook.py +++ b/benchkit/shell/command_execution/io/hooks/hook.py @@ -21,7 +21,6 @@ class IOHook(ABC): """basic interface that each hook needs to implement""" def __init__(self,name:str): self._output = PipeIOStream() - self._stream_duplicate = PipeIOStream() self.name=name @abstractmethod @@ -58,6 +57,7 @@ class IOReaderHook(IOHook): def __init__(self, hook_function: Callable[[ReadableIOStream], None], name:Optional[str] = None): self.hook_function = hook_function + self._stream_duplicate = PipeIOStream() if not name: name = self.hook_function.__name__ super().__init__(name) From 18e6981d980a4938eab184a3caf15d043ac4bcd3 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Mon, 30 Jun 2025 13:15:44 +0200 Subject: [PATCH 61/71] intoduce a hook that logs all other interations --- benchkit/shell/command_execution/execute.py | 7 + .../execution_debugging/debugging_hook.py | 72 +++++++++ .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../y._std_err_hook.name-0-err | 4 + .../y._std_out_hook.name-0-out | 4 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../y._std_err_hook.name-0-err | 4 + .../y._std_err_hook.name-1-err | 4 + .../y._std_err_hook.name-2-err | 4 + .../y._std_out_hook.name-0-out | 24 +++ .../y._std_out_hook.name-1-out | 24 +++ .../y._std_out_hook.name-2-out | 4 + .../__mergehookfunction-0-err | 4 + .../__mergehookfunction-0-out | 24 +++ .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-1-err | 4 + .../hook_function_line-1-out | 24 +++ .../void_input-2-err | 4 + .../void_input-2-out | 4 + .../__mergehookfunction-0-err | 4 + .../__mergehookfunction-0-out | 24 +++ .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-1-err | 2 + .../hook_function_line-1-out | 22 +++ .../void_input-2-err | 2 + .../void_input-2-out | 2 + .../__mergehookfunction-0-err | 4 + .../__mergehookfunction-0-out | 24 +++ .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-1-err | 4 + .../hook_function_line-1-out | 24 +++ .../void_input-2-err | 4 + .../void_input-2-out | 4 + .../__mergehookfunction-0-err | 4 + .../__mergehookfunction-0-out | 24 +++ .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-1-err | 2 + .../hook_function_line-1-out | 22 +++ .../void_input-2-err | 2 + .../void_input-2-out | 2 + .../__mergehookfunction-0-err | 4 + .../__mergehookfunction-0-out | 24 +++ .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-1-err | 2 + .../hook_function_line-1-out | 22 +++ .../void_input-2-err | 2 + .../void_input-2-out | 2 + .../__mergehookfunction-0-err | 4 + .../__mergehookfunction-0-out | 24 +++ .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-1-err | 2 + .../hook_function_line-1-out | 22 +++ .../void_input-2-err | 2 + .../void_input-2-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../void_input-0-err | 4 + .../void_input-0-out | 4 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 4 + .../hook_function_line-0-out | 4 + .../void_input-1-err | 4 + .../void_input-1-out | 4 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../__mergehookfunction-0-err | 4 + .../__mergehookfunction-0-out | 24 +++ .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function-1-out | 4 + .../void_input-1-err | 4 + .../void_input-2-err | 4 + .../void_input-2-out | 4 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 22 +++ .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 43 ++++++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 41 +++++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 4 + .../hook_function_line-0-out | 24 +++ .../void_input-1-err | 4 + .../void_input-1-out | 4 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 2 + .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_initial_input | 4 + .../after_initial_input | 4 + .../after_comand-0-out | 2 + .../after_initial_input | 4 + .../after_comand-0-err | 2 + .../after_comand-0-out | 2 + .../after_initial_input | 4 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 2 + .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 2 + .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 2 + .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-out | 5 + .../after_initial_input | 4 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 2 + .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-out | 2 + .../after_initial_input | 4 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 2 + .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 2 + .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 12 ++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-err | 2 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-out | 22 +++ .../hook_function_line-1-err | 2 + .../hook_function_line-1-out | 22 +++ .../void_input-2-err | 2 + .../void_input-2-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 2 + .../after_comand-0-out | 22 +++ .../after_initial_input | 4 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 2 + .../after_comand-0-out | 22 +++ .../after_initial_input | 4 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + .../after_comand-0-err | 4 + .../after_comand-0-out | 24 +++ .../after_initial_input | 4 + .../hook_function_line-0-out | 22 +++ .../void_input-1-err | 2 + .../void_input-1-out | 2 + tests/command_execution/a | 144 ++++++++++++++++++ .../execute_command/whathappend.html | 61 ++++++++ .../execute_command/whathappend.py | 130 ++++++++++++++++ tests/command_execution/requirements.txt | 2 + 327 files changed, 3167 insertions(+) create mode 100644 benchkit/shell/command_execution/io/hooks/execution_debugging/debugging_hook.py create mode 100644 tests/command_execution/.commandlogging/17510244742838077109549750444/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510244742838077109549750444/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510244742838077109549750444/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510244742838077109549750444/y._std_err_hook.name-0-err create mode 100644 tests/command_execution/.commandlogging/17510244742838077109549750444/y._std_out_hook.name-0-out create mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-0-err create mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-1-err create mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-2-err create mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-0-out create mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-1-out create mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-2-out create mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/__mergehookfunction-0-err create mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/__mergehookfunction-0-out create mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/hook_function_line-1-err create mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/hook_function_line-1-out create mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/void_input-2-err create mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/void_input-2-out create mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/__mergehookfunction-0-err create mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/__mergehookfunction-0-out create mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/hook_function_line-1-err create mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/hook_function_line-1-out create mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/void_input-2-err create mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/void_input-2-out create mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/__mergehookfunction-0-err create mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/__mergehookfunction-0-out create mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/hook_function_line-1-err create mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/hook_function_line-1-out create mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/void_input-2-err create mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/void_input-2-out create mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/__mergehookfunction-0-err create mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/__mergehookfunction-0-out create mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/hook_function_line-1-err create mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/hook_function_line-1-out create mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/void_input-2-err create mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/void_input-2-out create mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/__mergehookfunction-0-err create mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/__mergehookfunction-0-out create mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/hook_function_line-1-err create mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/hook_function_line-1-out create mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/void_input-2-err create mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/void_input-2-out create mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/__mergehookfunction-0-err create mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/__mergehookfunction-0-out create mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/hook_function_line-1-err create mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/hook_function_line-1-out create mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/void_input-2-err create mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/void_input-2-out create mode 100644 tests/command_execution/.commandlogging/17510251816903650858575506288/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510251816903650858575506288/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510251816903650858575506288/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510251816903650858575506288/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510251816903650858575506288/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510251816903650858575506288/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510251816903650858575506288/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510251998639835173709686216/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510251998639835173709686216/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510251998639835173709686216/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510251998639835173709686216/void_input-0-err create mode 100644 tests/command_execution/.commandlogging/17510251998639835173709686216/void_input-0-out create mode 100644 tests/command_execution/.commandlogging/1751025255216489808043222085/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/1751025255216489808043222085/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/1751025255216489808043222085/after_initial_input create mode 100644 tests/command_execution/.commandlogging/1751025255216489808043222085/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/1751025255216489808043222085/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/1751025255216489808043222085/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/1751025255216489808043222085/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510252836442209649289205695/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510252836442209649289205695/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510252836442209649289205695/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510252836442209649289205695/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510252836442209649289205695/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510252836442209649289205695/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510252836442209649289205695/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510254007104987491064385613/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510254007104987491064385613/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510254007104987491064385613/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510254007104987491064385613/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510254007104987491064385613/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510254007104987491064385613/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510254007104987491064385613/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510254272071111963399063064/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510254272071111963399063064/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510254272071111963399063064/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510254272071111963399063064/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510254272071111963399063064/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510254272071111963399063064/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510254272071111963399063064/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/1751025471359917208436063578/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/1751025471359917208436063578/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/1751025471359917208436063578/after_initial_input create mode 100644 tests/command_execution/.commandlogging/1751025472359917208436063578/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/1751025472359917208436063578/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/1751025472359917208436063578/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/1751025472359917208436063578/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/__mergehookfunction-0-err create mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/__mergehookfunction-0-out create mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/hook_function-1-out create mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-2-err create mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-2-out create mode 100644 tests/command_execution/.commandlogging/17510255276025331534543549503/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510255276025331534543549503/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510255276025331534543549503/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510255276025331534543549503/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510255276025331534543549503/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510256027664721227509456362/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510256027664721227509456362/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510256027664721227509456362/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510256027664721227509456362/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510256027664721227509456362/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510256027664721227509456362/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510256027664721227509456362/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510256224287177846385816737/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510256224287177846385816737/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510256224287177846385816737/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510256224287177846385816737/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510256224287177846385816737/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510256224287177846385816737/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510256224287177846385816737/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510258395706702362975748128/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510258395706702362975748128/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510258395706702362975748128/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510258415706702362975748128/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510258415706702362975748128/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510258415706702362975748128/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510258415706702362975748128/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510262308517412947345727383/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510262308517412947345727383/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510262308517412947345727383/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510262308517412947345727383/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510262308517412947345727383/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510262308517412947345727383/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510262308517412947345727383/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510262584556859485228340177/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510262584556859485228340177/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510262584556859485228340177/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510262584556859485228340177/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510262584556859485228340177/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510262584556859485228340177/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510262584556859485228340177/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510265094798630923828201528/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510265094798630923828201528/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510265114127274637998895824/after_initial_input create mode 100644 tests/command_execution/.commandlogging/1751026518371415368267621105/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/1751026518371415368267621105/after_initial_input create mode 100644 tests/command_execution/.commandlogging/1751026559268498061844594090/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/1751026559268498061844594090/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/1751026559268498061844594090/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510265928765007803655267033/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510265928765007803655267033/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510265928765007803655267033/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510265928765007803655267033/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510265928765007803655267033/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510265928765007803655267033/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510265928765007803655267033/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/1751026607815276382744962604/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/1751026607815276382744962604/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/1751026607815276382744962604/after_initial_input create mode 100644 tests/command_execution/.commandlogging/1751026607815276382744962604/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/1751026607815276382744962604/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/1751026607815276382744962604/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/1751026607815276382744962604/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510266517757071367764566299/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510266517757071367764566299/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510266517757071367764566299/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510266517757071367764566299/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510266517757071367764566299/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510266517757071367764566299/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510266517757071367764566299/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510266883393410295416928852/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510266883393410295416928852/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510266955637139366934248799/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510266955637139366934248799/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510266955637139366934248799/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510266955637139366934248799/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510266955637139366934248799/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510266955637139366934248799/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510266955637139366934248799/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510267507745254711084627794/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510267507745254711084627794/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510267636351896796693948683/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510267636351896796693948683/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510267636351896796693948683/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510267636351896796693948683/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510267636351896796693948683/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510267636351896796693948683/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510267636351896796693948683/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/1751026779829708360205953396/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/1751026779829708360205953396/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/1751026779829708360205953396/after_initial_input create mode 100644 tests/command_execution/.commandlogging/1751026779829708360205953396/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/1751026779829708360205953396/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/1751026779829708360205953396/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/1751026779829708360205953396/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510268714191413081950033424/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510268714191413081950033424/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510268714191413081950033424/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510268714191413081950033424/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510268714191413081950033424/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510268714191413081950033424/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510268714191413081950033424/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510269497858991073078199574/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510269497858991073078199574/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510269497858991073078199574/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510269497858991073078199574/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510269497858991073078199574/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510269497858991073078199574/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510269497858991073078199574/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510269733222053283261616000/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510269733222053283261616000/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510269733222053283261616000/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510269733222053283261616000/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510269733222053283261616000/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510269733222053283261616000/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510269733222053283261616000/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510270417459227282026739641/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510270417459227282026739641/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510270417459227282026739641/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510270417459227282026739641/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510270417459227282026739641/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510270417459227282026739641/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510270417459227282026739641/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510270583821103139432107070/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510270583821103139432107070/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510270583821103139432107070/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510270583821103139432107070/hook_function_line-0-err create mode 100644 tests/command_execution/.commandlogging/17510270583821103139432107070/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510270583821103139432107070/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510270583821103139432107070/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510275061222936710834884607/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510275061222936710834884607/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510275061222936710834884607/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-1-err create mode 100644 tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-1-out create mode 100644 tests/command_execution/.commandlogging/17510275061222936710834884607/void_input-2-err create mode 100644 tests/command_execution/.commandlogging/17510275061222936710834884607/void_input-2-out create mode 100644 tests/command_execution/.commandlogging/17510275194239943051475391385/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510275194239943051475391385/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510275194239943051475391385/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510275194239943051475391385/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510275194239943051475391385/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510275194239943051475391385/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510275384121131127726226779/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510275384121131127726226779/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510275384121131127726226779/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510275384121131127726226779/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510275384121131127726226779/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510275384121131127726226779/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/1751027691560915493581199542/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/1751027691560915493581199542/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/1751027691560915493581199542/after_initial_input create mode 100644 tests/command_execution/.commandlogging/1751027691560915493581199542/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/1751027691560915493581199542/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/1751027691560915493581199542/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510277949065025034801274345/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510277949065025034801274345/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510277949065025034801274345/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510277949065025034801274345/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510277949065025034801274345/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510277949065025034801274345/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510278265146615098218632368/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510278265146615098218632368/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510278265146615098218632368/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510278265146615098218632368/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510278265146615098218632368/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510278265146615098218632368/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510278435495815789182149599/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510278435495815789182149599/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510278435495815789182149599/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510278435495815789182149599/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510278435495815789182149599/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510278435495815789182149599/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510278954603509299118523721/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510278954603509299118523721/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510278954603509299118523721/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510278954603509299118523721/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510278954603509299118523721/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510278954603509299118523721/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510279111824369709155032513/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510279111824369709155032513/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510279111824369709155032513/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510279111824369709155032513/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510279111824369709155032513/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510279111824369709155032513/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510281386106517343193566288/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510281386106517343193566288/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510281386106517343193566288/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510281386106517343193566288/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510281386106517343193566288/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510281386106517343193566288/void_input-1-out create mode 100644 tests/command_execution/.commandlogging/17510284145298888010555680136/after_comand-0-err create mode 100644 tests/command_execution/.commandlogging/17510284145298888010555680136/after_comand-0-out create mode 100644 tests/command_execution/.commandlogging/17510284145298888010555680136/after_initial_input create mode 100644 tests/command_execution/.commandlogging/17510284145298888010555680136/hook_function_line-0-out create mode 100644 tests/command_execution/.commandlogging/17510284145298888010555680136/void_input-1-err create mode 100644 tests/command_execution/.commandlogging/17510284145298888010555680136/void_input-1-out create mode 100644 tests/command_execution/a create mode 100644 tests/command_execution/execute_command/whathappend.html create mode 100644 tests/command_execution/execute_command/whathappend.py create mode 100644 tests/command_execution/requirements.txt diff --git a/benchkit/shell/command_execution/execute.py b/benchkit/shell/command_execution/execute.py index f970ed20..54657b7f 100755 --- a/benchkit/shell/command_execution/execute.py +++ b/benchkit/shell/command_execution/execute.py @@ -8,6 +8,8 @@ import subprocess from typing import Dict, Iterable, List, Optional +from shell.command_execution.io.hooks.execution_debugging.debugging_hook import add_logging_hooks + from benchkit.shell.command_execution.command_process import CommandProcess from benchkit.shell.command_execution.io.hooks.hook import ( IOHook, @@ -22,6 +24,8 @@ from benchkit.shell.command_execution.io.output import popen_get_output +DEBUG = False + def execute_command( # needed for starting the command command: List[str], @@ -39,6 +43,9 @@ def execute_command( ordered_output_hooks: Optional[List[OutputHook]] = None, ) -> CommandProcess: + if DEBUG: + ordered_input_hooks, ordered_output_hooks = add_logging_hooks(ordered_input_hooks,ordered_output_hooks,command) + if environment is None: environment = {} diff --git a/benchkit/shell/command_execution/io/hooks/execution_debugging/debugging_hook.py b/benchkit/shell/command_execution/io/hooks/execution_debugging/debugging_hook.py new file mode 100644 index 00000000..49286156 --- /dev/null +++ b/benchkit/shell/command_execution/io/hooks/execution_debugging/debugging_hook.py @@ -0,0 +1,72 @@ +import shlex +import time +from pathlib import Path +from typing import List, Optional +from benchkit.shell.command_execution.io.hooks.hook import IOHook, IOWriterHook, OutputHook +from benchkit.shell.command_execution.io.stream import ReadableIOStream, WritableIOStream + + +def debugger_hook(command:str,hooklocation:str) -> IOWriterHook: + def time_accurate() -> float: + return time.time() + + def command_folder() -> str: + return str(int(time_accurate())) + str(abs(hash(command))) + + def tag_bytes_with_time( byt:bytes) -> bytes: + offset = time_accurate() + return f'{offset},'.encode("utf-8") + byt + + + def hook_function(input_stream:ReadableIOStream,output_stream:WritableIOStream) -> None: + start_time = time_accurate() + output_file_path = Path(f"./.commandlogging/{command_folder()}/{hooklocation}") + output_file_path.parent.mkdir(exist_ok=True, parents=True) + with open(output_file_path, "bw+", buffering=0) as output_file: + output_file.write('hookstart,command,location\n'.encode("utf-8")) + output_file.write(f'{time.time()},{command},{hooklocation}\n'.encode("utf-8")) + byt = input_stream.read_line() + while byt: + output_stream.write(byt) + output_file.write(tag_bytes_with_time(byt)) + byt = input_stream.read_line() + output_file.write('hookend\n'.encode("utf-8")) + output_file.write(f'{time_accurate() - start_time}'.encode("utf-8")) + + return IOWriterHook(hook_function) + +def add_logging_hooks(ordered_input_hooks:Optional[List[IOHook]], ordered_output_hooks:Optional[List[OutputHook]],command:List[str]): + new_ordered_input_hooks:List[IOHook] = [] + a = 0 + location = "after_initial_input" + if ordered_input_hooks: + for x in ordered_input_hooks: + new_ordered_input_hooks.append(debugger_hook(shlex.join(command),location + f'-{a}-in')) + new_ordered_input_hooks.append(x) + location = x.name + a += 1 + new_ordered_input_hooks.append(debugger_hook(shlex.join(command),location)) + + a = 0 + err_location = "after_comand" + out_location = "after_comand" + new_ordered_output_hooks:List[OutputHook] = [] + + if ordered_output_hooks: + err_log:Optional[IOWriterHook] = debugger_hook(shlex.join(command),err_location + f"-{a}-err") + out_log:Optional[IOWriterHook] = debugger_hook(shlex.join(command),out_location + f"-{a}-out") + new_ordered_output_hooks.append(OutputHook(out_log,err_log)) + for y in ordered_output_hooks: + err_log = None + out_log = None + if y._std_err_hook: + err_location = y._std_err_hook.name + err_log = debugger_hook(shlex.join(command),err_location + f"-{a}-err") + if y._std_out_hook: + out_location = y._std_out_hook.name + out_log = debugger_hook(shlex.join(command),out_location + f"-{a}-out") + + new_ordered_output_hooks.append(y) + new_ordered_output_hooks.append(OutputHook(out_log,err_log)) + a += 1 + return (new_ordered_input_hooks, new_ordered_output_hooks) diff --git a/tests/command_execution/.commandlogging/17510244742838077109549750444/after_comand-0-err b/tests/command_execution/.commandlogging/17510244742838077109549750444/after_comand-0-err new file mode 100644 index 00000000..2dcb89be --- /dev/null +++ b/tests/command_execution/.commandlogging/17510244742838077109549750444/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751024474.5330513,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0546274185180664 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510244742838077109549750444/after_comand-0-out b/tests/command_execution/.commandlogging/17510244742838077109549750444/after_comand-0-out new file mode 100644 index 00000000..ee886e9f --- /dev/null +++ b/tests/command_execution/.commandlogging/17510244742838077109549750444/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751024474.5328732,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751024474.6354785,2025-06-27T13:41:14,532452952+02:00 +1751024474.7381787,2025-06-27T13:41:14,635261766+02:00 +1751024474.8409607,2025-06-27T13:41:14,737938495+02:00 +1751024474.9435253,2025-06-27T13:41:14,840786919+02:00 +1751024474.9435563,2025-06-27T13:41:14,943392357+02:00 +1751024475.149961,2025-06-27T13:41:15,046616199+02:00 +1751024475.252764,2025-06-27T13:41:15,149753297+02:00 +1751024475.3561807,2025-06-27T13:41:15,252670632+02:00 +1751024475.4600303,2025-06-27T13:41:15,355981869+02:00 +1751024475.46008,2025-06-27T13:41:15,459806522+02:00 +1751024475.664867,2025-06-27T13:41:15,562314262+02:00 +1751024475.7675586,2025-06-27T13:41:15,664691992+02:00 +1751024475.87035,2025-06-27T13:41:15,767411625+02:00 +1751024475.972923,2025-06-27T13:41:15,870157915+02:00 +1751024475.9729967,2025-06-27T13:41:15,972787369+02:00 +1751024476.1782155,2025-06-27T13:41:16,075502175+02:00 +1751024476.2807133,2025-06-27T13:41:16,177912206+02:00 +1751024476.3831794,2025-06-27T13:41:16,280640466+02:00 +1751024476.4861784,2025-06-27T13:41:16,383105067+02:00 +1751024476.4862158,2025-06-27T13:41:16,486031958+02:00 +hookend +2.0548436641693115 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510244742838077109549750444/after_initial_input b/tests/command_execution/.commandlogging/17510244742838077109549750444/after_initial_input new file mode 100644 index 00000000..48a066b2 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510244742838077109549750444/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751024474.5323815,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0004372596740722656 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510244742838077109549750444/y._std_err_hook.name-0-err b/tests/command_execution/.commandlogging/17510244742838077109549750444/y._std_err_hook.name-0-err new file mode 100644 index 00000000..31bef375 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510244742838077109549750444/y._std_err_hook.name-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751024474.5338032,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,y._std_err_hook.name-0-err +hookend +2.055327892303467 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510244742838077109549750444/y._std_out_hook.name-0-out b/tests/command_execution/.commandlogging/17510244742838077109549750444/y._std_out_hook.name-0-out new file mode 100644 index 00000000..5002d133 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510244742838077109549750444/y._std_out_hook.name-0-out @@ -0,0 +1,4 @@ +hookstart,command,location +1751024474.5339541,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,y._std_out_hook.name-0-out +hookend +2.0552501678466797 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/after_comand-0-err b/tests/command_execution/.commandlogging/17510246892025837768399725396/after_comand-0-err new file mode 100644 index 00000000..36c38de4 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510246892025837768399725396/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751024689.5764687,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.063610076904297 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/after_comand-0-out b/tests/command_execution/.commandlogging/17510246892025837768399725396/after_comand-0-out new file mode 100644 index 00000000..a12cf593 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510246892025837768399725396/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751024689.5761518,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751024689.679637,2025-06-27T13:44:49,575880143+02:00 +1751024689.7825742,2025-06-27T13:44:49,679412187+02:00 +1751024689.8855722,2025-06-27T13:44:49,782418312+02:00 +1751024689.989035,2025-06-27T13:44:49,885436529+02:00 +1751024689.9890847,2025-06-27T13:44:49,988854126+02:00 +1751024690.1954749,2025-06-27T13:44:50,092034914+02:00 +1751024690.2985873,2025-06-27T13:44:50,195317278+02:00 +1751024690.4013963,2025-06-27T13:44:50,298416167+02:00 +1751024690.5046163,2025-06-27T13:44:50,401240902+02:00 +1751024690.5046685,2025-06-27T13:44:50,504427455+02:00 +1751024690.7099872,2025-06-27T13:44:50,606938731+02:00 +1751024690.8135684,2025-06-27T13:44:50,709789555+02:00 +1751024690.9167044,2025-06-27T13:44:50,813398642+02:00 +1751024691.0200062,2025-06-27T13:44:50,916521704+02:00 +1751024691.0200546,2025-06-27T13:44:51,019816122+02:00 +1751024691.2272513,2025-06-27T13:44:51,123131447+02:00 +1751024691.3315399,2025-06-27T13:44:51,227017558+02:00 +1751024691.4355457,2025-06-27T13:44:51,331324848+02:00 +1751024691.5384028,2025-06-27T13:44:51,435357696+02:00 +1751024691.5384562,2025-06-27T13:44:51,538287634+02:00 +hookend +2.0639257431030273 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/after_initial_input b/tests/command_execution/.commandlogging/17510246892025837768399725396/after_initial_input new file mode 100644 index 00000000..d388e990 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510246892025837768399725396/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751024689.5756447,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0004024505615234375 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-0-err b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-0-err new file mode 100644 index 00000000..a90372a6 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751024689.577334,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,y._std_err_hook.name-0-err +hookend +0.0002932548522949219 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-1-err b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-1-err new file mode 100644 index 00000000..0290013f --- /dev/null +++ b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-1-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751024689.5790057,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,y._std_err_hook.name-1-err +hookend +2.064610719680786 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-2-err b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-2-err new file mode 100644 index 00000000..bbe5b913 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-2-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751024689.579658,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,y._std_err_hook.name-2-err +hookend +2.065042734146118 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-0-out b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-0-out new file mode 100644 index 00000000..a3601574 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751024689.57741,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,y._std_out_hook.name-0-out +1751024689.6798575,2025-06-27T13:44:49,575880143+02:00 +1751024689.7828503,2025-06-27T13:44:49,679412187+02:00 +1751024689.8857782,2025-06-27T13:44:49,782418312+02:00 +1751024689.9892328,2025-06-27T13:44:49,885436529+02:00 +1751024689.9892628,2025-06-27T13:44:49,988854126+02:00 +1751024690.1956754,2025-06-27T13:44:50,092034914+02:00 +1751024690.2988915,2025-06-27T13:44:50,195317278+02:00 +1751024690.401554,2025-06-27T13:44:50,298416167+02:00 +1751024690.5049016,2025-06-27T13:44:50,401240902+02:00 +1751024690.5049715,2025-06-27T13:44:50,504427455+02:00 +1751024690.7102947,2025-06-27T13:44:50,606938731+02:00 +1751024690.8139286,2025-06-27T13:44:50,709789555+02:00 +1751024690.9169998,2025-06-27T13:44:50,813398642+02:00 +1751024691.0203342,2025-06-27T13:44:50,916521704+02:00 +1751024691.0203788,2025-06-27T13:44:51,019816122+02:00 +1751024691.227563,2025-06-27T13:44:51,123131447+02:00 +1751024691.332059,2025-06-27T13:44:51,227017558+02:00 +1751024691.4358869,2025-06-27T13:44:51,331324848+02:00 +1751024691.538645,2025-06-27T13:44:51,435357696+02:00 +1751024691.5386834,2025-06-27T13:44:51,538287634+02:00 +hookend +2.0643975734710693 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-1-out b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-1-out new file mode 100644 index 00000000..68632642 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-1-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751024689.5789895,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,y._std_out_hook.name-1-out +1751024689.6801922,2025-06-27T13:44:49,575880143+02:00 +1751024689.7831109,2025-06-27T13:44:49,679412187+02:00 +1751024689.8859928,2025-06-27T13:44:49,782418312+02:00 +1751024689.989447,2025-06-27T13:44:49,885436529+02:00 +1751024689.9895043,2025-06-27T13:44:49,988854126+02:00 +1751024690.1959798,2025-06-27T13:44:50,092034914+02:00 +1751024690.299146,2025-06-27T13:44:50,195317278+02:00 +1751024690.4018497,2025-06-27T13:44:50,298416167+02:00 +1751024690.505171,2025-06-27T13:44:50,401240902+02:00 +1751024690.5052073,2025-06-27T13:44:50,504427455+02:00 +1751024690.7105687,2025-06-27T13:44:50,606938731+02:00 +1751024690.8141503,2025-06-27T13:44:50,709789555+02:00 +1751024690.917231,2025-06-27T13:44:50,813398642+02:00 +1751024691.0206523,2025-06-27T13:44:50,916521704+02:00 +1751024691.020693,2025-06-27T13:44:51,019816122+02:00 +1751024691.2278674,2025-06-27T13:44:51,123131447+02:00 +1751024691.3323565,2025-06-27T13:44:51,227017558+02:00 +1751024691.4361537,2025-06-27T13:44:51,331324848+02:00 +1751024691.5388362,2025-06-27T13:44:51,435357696+02:00 +1751024691.5388982,2025-06-27T13:44:51,538287634+02:00 +hookend +2.06404709815979 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-2-out b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-2-out new file mode 100644 index 00000000..d7158ce4 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-2-out @@ -0,0 +1,4 @@ +hookstart,command,location +1751024689.5798159,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,y._std_out_hook.name-2-out +hookend +2.065005302429199 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/__mergehookfunction-0-err b/tests/command_execution/.commandlogging/17510248382308677391901912860/__mergehookfunction-0-err new file mode 100644 index 00000000..6851db51 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510248382308677391901912860/__mergehookfunction-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751024838.129747,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-err +hookend +0.0003368854522705078 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/__mergehookfunction-0-out b/tests/command_execution/.commandlogging/17510248382308677391901912860/__mergehookfunction-0-out new file mode 100644 index 00000000..d4faaf32 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510248382308677391901912860/__mergehookfunction-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751024838.1294317,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-out +1751024838.2315176,2025-06-27T13:47:18,127779610+02:00 +1751024838.334642,2025-06-27T13:47:18,230806982+02:00 +1751024838.4383035,2025-06-27T13:47:18,334235542+02:00 +1751024838.5416803,2025-06-27T13:47:18,437825482+02:00 +1751024838.5417807,2025-06-27T13:47:18,541199198+02:00 +1751024838.7484095,2025-06-27T13:47:18,645263338+02:00 +1751024838.8518283,2025-06-27T13:47:18,747957160+02:00 +1751024838.9554794,2025-06-27T13:47:18,851381131+02:00 +1751024839.059414,2025-06-27T13:47:18,954977179+02:00 +1751024839.0594547,2025-06-27T13:47:19,058907470+02:00 +1751024839.2647915,2025-06-27T13:47:19,161835967+02:00 +1751024839.3679013,2025-06-27T13:47:19,264374781+02:00 +1751024839.4710348,2025-06-27T13:47:19,367363457+02:00 +1751024839.5747318,2025-06-27T13:47:19,470626789+02:00 +1751024839.5747666,2025-06-27T13:47:19,574324326+02:00 +1751024839.7798982,2025-06-27T13:47:19,676537009+02:00 +1751024839.8825924,2025-06-27T13:47:19,779352954+02:00 +1751024839.985621,2025-06-27T13:47:19,882067222+02:00 +1751024840.089687,2025-06-27T13:47:19,985203711+02:00 +1751024840.0984542,2025-06-27T13:47:20,089016391+02:00 +hookend +2.0636141300201416 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/after_comand-0-err b/tests/command_execution/.commandlogging/17510248382308677391901912860/after_comand-0-err new file mode 100644 index 00000000..b3a17507 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510248382308677391901912860/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751024838.1289701,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0626070499420166 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/after_comand-0-out b/tests/command_execution/.commandlogging/17510248382308677391901912860/after_comand-0-out new file mode 100644 index 00000000..8b6dec3c --- /dev/null +++ b/tests/command_execution/.commandlogging/17510248382308677391901912860/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751024838.1280284,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751024838.231044,2025-06-27T13:47:18,127779610+02:00 +1751024838.3344269,2025-06-27T13:47:18,230806982+02:00 +1751024838.438035,2025-06-27T13:47:18,334235542+02:00 +1751024838.5413373,2025-06-27T13:47:18,437825482+02:00 +1751024838.5413785,2025-06-27T13:47:18,541199198+02:00 +1751024838.7481694,2025-06-27T13:47:18,645263338+02:00 +1751024838.85155,2025-06-27T13:47:18,747957160+02:00 +1751024838.955175,2025-06-27T13:47:18,851381131+02:00 +1751024839.0591447,2025-06-27T13:47:18,954977179+02:00 +1751024839.0592022,2025-06-27T13:47:19,058907470+02:00 +1751024839.2645204,2025-06-27T13:47:19,161835967+02:00 +1751024839.3675141,2025-06-27T13:47:19,264374781+02:00 +1751024839.4707928,2025-06-27T13:47:19,367363457+02:00 +1751024839.574551,2025-06-27T13:47:19,470626789+02:00 +1751024839.5746095,2025-06-27T13:47:19,574324326+02:00 +1751024839.7795508,2025-06-27T13:47:19,676537009+02:00 +1751024839.8823485,2025-06-27T13:47:19,779352954+02:00 +1751024839.985391,2025-06-27T13:47:19,882067222+02:00 +1751024840.089359,2025-06-27T13:47:19,985203711+02:00 +1751024840.0894065,2025-06-27T13:47:20,089016391+02:00 +hookend +2.0634047985076904 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/after_initial_input b/tests/command_execution/.commandlogging/17510248382308677391901912860/after_initial_input new file mode 100644 index 00000000..ead19323 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510248382308677391901912860/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751024838.1279163,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00037360191345214844 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/hook_function_line-1-err b/tests/command_execution/.commandlogging/17510248382308677391901912860/hook_function_line-1-err new file mode 100644 index 00000000..20a4b4b2 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510248382308677391901912860/hook_function_line-1-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751024838.1314452,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-err +hookend +2.0637118816375732 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/hook_function_line-1-out b/tests/command_execution/.commandlogging/17510248382308677391901912860/hook_function_line-1-out new file mode 100644 index 00000000..39f6b030 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510248382308677391901912860/hook_function_line-1-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751024838.1314204,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-out +1751024838.231801,2025-06-27T13:47:18,127779610+02:00 +1751024838.3347976,2025-06-27T13:47:18,230806982+02:00 +1751024838.4385178,2025-06-27T13:47:18,334235542+02:00 +1751024838.5420334,2025-06-27T13:47:18,437825482+02:00 +1751024838.542114,2025-06-27T13:47:18,541199198+02:00 +1751024838.7486246,2025-06-27T13:47:18,645263338+02:00 +1751024838.852063,2025-06-27T13:47:18,747957160+02:00 +1751024838.9556708,2025-06-27T13:47:18,851381131+02:00 +1751024839.0596218,2025-06-27T13:47:18,954977179+02:00 +1751024839.059748,2025-06-27T13:47:19,058907470+02:00 +1751024839.2649322,2025-06-27T13:47:19,161835967+02:00 +1751024839.36818,2025-06-27T13:47:19,264374781+02:00 +1751024839.471296,2025-06-27T13:47:19,367363457+02:00 +1751024839.5749333,2025-06-27T13:47:19,470626789+02:00 +1751024839.5751898,2025-06-27T13:47:19,574324326+02:00 +1751024839.7801414,2025-06-27T13:47:19,676537009+02:00 +1751024839.8827302,2025-06-27T13:47:19,779352954+02:00 +1751024839.9858415,2025-06-27T13:47:19,882067222+02:00 +1751024840.0899417,2025-06-27T13:47:19,985203711+02:00 +1751024840.098623,2025-06-27T13:47:20,089016391+02:00 +hookend +2.06280255317688 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/void_input-2-err b/tests/command_execution/.commandlogging/17510248382308677391901912860/void_input-2-err new file mode 100644 index 00000000..e1de4162 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510248382308677391901912860/void_input-2-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751024838.1321945,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-err +hookend +2.064682722091675 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/void_input-2-out b/tests/command_execution/.commandlogging/17510248382308677391901912860/void_input-2-out new file mode 100644 index 00000000..69cec2a3 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510248382308677391901912860/void_input-2-out @@ -0,0 +1,4 @@ +hookstart,command,location +1751024838.132235,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-out +hookend +2.0641093254089355 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/__mergehookfunction-0-err b/tests/command_execution/.commandlogging/17510249151932072896301725570/__mergehookfunction-0-err new file mode 100644 index 00000000..68cf45c8 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249151932072896301725570/__mergehookfunction-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751024915.292791,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-err +hookend +0.00030994415283203125 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/__mergehookfunction-0-out b/tests/command_execution/.commandlogging/17510249151932072896301725570/__mergehookfunction-0-out new file mode 100644 index 00000000..b457db08 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249151932072896301725570/__mergehookfunction-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751024915.292239,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-out +1751024915.3937502,2025-06-27T13:48:35,290764934+02:00 +1751024915.496822,2025-06-27T13:48:35,393204865+02:00 +1751024915.600562,2025-06-27T13:48:35,496382562+02:00 +1751024915.703259,2025-06-27T13:48:35,600042714+02:00 +1751024915.7032886,2025-06-27T13:48:35,702817430+02:00 +1751024915.9096897,2025-06-27T13:48:35,806389578+02:00 +1751024916.0128648,2025-06-27T13:48:35,909252735+02:00 +1751024916.116821,2025-06-27T13:48:36,012395623+02:00 +1751024916.220221,2025-06-27T13:48:36,116287907+02:00 +1751024916.2202585,2025-06-27T13:48:36,219842541+02:00 +1751024916.426124,2025-06-27T13:48:36,323245511+02:00 +1751024916.5297232,2025-06-27T13:48:36,425853703+02:00 +1751024916.6329284,2025-06-27T13:48:36,529203854+02:00 +1751024916.7363734,2025-06-27T13:48:36,632461075+02:00 +1751024916.7364151,2025-06-27T13:48:36,735870257+02:00 +1751024916.9435582,2025-06-27T13:48:36,839715843+02:00 +1751024917.047733,2025-06-27T13:48:36,943128233+02:00 +1751024917.150318,2025-06-27T13:48:37,047316645+02:00 +1751024917.2520041,2025-06-27T13:48:37,149855368+02:00 +1751024917.2520266,2025-06-27T13:48:37,251625360+02:00 +hookend +2.0634281635284424 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/after_comand-0-err b/tests/command_execution/.commandlogging/17510249151932072896301725570/after_comand-0-err new file mode 100644 index 00000000..73d624bd --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249151932072896301725570/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751024915.2920203,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.06179141998291 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/after_comand-0-out b/tests/command_execution/.commandlogging/17510249151932072896301725570/after_comand-0-out new file mode 100644 index 00000000..741a59e7 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249151932072896301725570/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751024915.2917507,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751024915.393417,2025-06-27T13:48:35,290764934+02:00 +1751024915.496563,2025-06-27T13:48:35,393204865+02:00 +1751024915.6002612,2025-06-27T13:48:35,496382562+02:00 +1751024915.7030125,2025-06-27T13:48:35,600042714+02:00 +1751024915.7030578,2025-06-27T13:48:35,702817430+02:00 +1751024915.909423,2025-06-27T13:48:35,806389578+02:00 +1751024916.0125766,2025-06-27T13:48:35,909252735+02:00 +1751024916.1164844,2025-06-27T13:48:36,012395623+02:00 +1751024916.220039,2025-06-27T13:48:36,116287907+02:00 +1751024916.2200966,2025-06-27T13:48:36,219842541+02:00 +1751024916.4259698,2025-06-27T13:48:36,323245511+02:00 +1751024916.5293822,2025-06-27T13:48:36,425853703+02:00 +1751024916.632639,2025-06-27T13:48:36,529203854+02:00 +1751024916.736071,2025-06-27T13:48:36,632461075+02:00 +1751024916.736119,2025-06-27T13:48:36,735870257+02:00 +1751024916.9432998,2025-06-27T13:48:36,839715843+02:00 +1751024917.0475087,2025-06-27T13:48:36,943128233+02:00 +1751024917.15001,2025-06-27T13:48:37,047316645+02:00 +1751024917.2517416,2025-06-27T13:48:37,149855368+02:00 +1751024917.2517788,2025-06-27T13:48:37,251625360+02:00 +hookend +2.0621113777160645 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/after_initial_input b/tests/command_execution/.commandlogging/17510249151932072896301725570/after_initial_input new file mode 100644 index 00000000..e904b0c8 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249151932072896301725570/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751024915.2905214,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00022745132446289062 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/hook_function_line-1-err b/tests/command_execution/.commandlogging/17510249151932072896301725570/hook_function_line-1-err new file mode 100644 index 00000000..baccf218 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249151932072896301725570/hook_function_line-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751024915.2942975,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-err diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/hook_function_line-1-out b/tests/command_execution/.commandlogging/17510249151932072896301725570/hook_function_line-1-out new file mode 100644 index 00000000..bfeb94d7 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249151932072896301725570/hook_function_line-1-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751024915.2942476,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-out +1751024915.3941047,2025-06-27T13:48:35,290764934+02:00 +1751024915.497095,2025-06-27T13:48:35,393204865+02:00 +1751024915.6007948,2025-06-27T13:48:35,496382562+02:00 +1751024915.7034633,2025-06-27T13:48:35,600042714+02:00 +1751024915.703496,2025-06-27T13:48:35,702817430+02:00 +1751024915.9098892,2025-06-27T13:48:35,806389578+02:00 +1751024916.0131204,2025-06-27T13:48:35,909252735+02:00 +1751024916.1170743,2025-06-27T13:48:36,012395623+02:00 +1751024916.220462,2025-06-27T13:48:36,116287907+02:00 +1751024916.2205284,2025-06-27T13:48:36,219842541+02:00 +1751024916.4263167,2025-06-27T13:48:36,323245511+02:00 +1751024916.529925,2025-06-27T13:48:36,425853703+02:00 +1751024916.6331496,2025-06-27T13:48:36,529203854+02:00 +1751024916.736598,2025-06-27T13:48:36,632461075+02:00 +1751024916.736664,2025-06-27T13:48:36,735870257+02:00 +1751024916.9438033,2025-06-27T13:48:36,839715843+02:00 +1751024917.0478916,2025-06-27T13:48:36,943128233+02:00 +1751024917.1505322,2025-06-27T13:48:37,047316645+02:00 +1751024917.2523515,2025-06-27T13:48:37,149855368+02:00 +1751024917.2523804,2025-06-27T13:48:37,251625360+02:00 diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/void_input-2-err b/tests/command_execution/.commandlogging/17510249151932072896301725570/void_input-2-err new file mode 100644 index 00000000..5ff168ac --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249151932072896301725570/void_input-2-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751024915.2953196,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-err diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/void_input-2-out b/tests/command_execution/.commandlogging/17510249151932072896301725570/void_input-2-out new file mode 100644 index 00000000..8a1b3529 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249151932072896301725570/void_input-2-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751024915.2955427,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-out diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/__mergehookfunction-0-err b/tests/command_execution/.commandlogging/17510249732896639553809809502/__mergehookfunction-0-err new file mode 100644 index 00000000..aa6c6188 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249732896639553809809502/__mergehookfunction-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751024973.3105097,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-err +hookend +0.0003554821014404297 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/__mergehookfunction-0-out b/tests/command_execution/.commandlogging/17510249732896639553809809502/__mergehookfunction-0-out new file mode 100644 index 00000000..02218f20 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249732896639553809809502/__mergehookfunction-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751024973.310153,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-out +1751024973.4123704,2025-06-27T13:49:33,308602832+02:00 +1751024973.5159078,2025-06-27T13:49:33,411745517+02:00 +1751024973.6190417,2025-06-27T13:49:33,515403304+02:00 +1751024973.7231965,2025-06-27T13:49:33,618738262+02:00 +1751024973.7232275,2025-06-27T13:49:33,722789316+02:00 +1751024973.9299517,2025-06-27T13:49:33,826597608+02:00 +1751024974.0332024,2025-06-27T13:49:33,929688731+02:00 +1751024974.1367154,2025-06-27T13:49:34,032803369+02:00 +1751024974.2404892,2025-06-27T13:49:34,136331224+02:00 +1751024974.2405357,2025-06-27T13:49:34,239916475+02:00 +1751024974.4463224,2025-06-27T13:49:34,343113458+02:00 +1751024974.5500562,2025-06-27T13:49:34,445770715+02:00 +1751024974.6543813,2025-06-27T13:49:34,549578917+02:00 +1751024974.7575371,2025-06-27T13:49:34,653969265+02:00 +1751024974.7575657,2025-06-27T13:49:34,757186631+02:00 +1751024974.963275,2025-06-27T13:49:34,859921092+02:00 +1751024975.0662923,2025-06-27T13:49:34,962856290+02:00 +1751024975.1692538,2025-06-27T13:49:35,065894037+02:00 +1751024975.2721398,2025-06-27T13:49:35,168747011+02:00 +1751024975.2721875,2025-06-27T13:49:35,271785436+02:00 +hookend +2.0654468536376953 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/after_comand-0-err b/tests/command_execution/.commandlogging/17510249732896639553809809502/after_comand-0-err new file mode 100644 index 00000000..f14ec8b9 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249732896639553809809502/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751024973.3092992,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0646913051605225 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/after_comand-0-out b/tests/command_execution/.commandlogging/17510249732896639553809809502/after_comand-0-out new file mode 100644 index 00000000..8adbc742 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249732896639553809809502/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751024973.3090308,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751024973.4120176,2025-06-27T13:49:33,308602832+02:00 +1751024973.5155876,2025-06-27T13:49:33,411745517+02:00 +1751024973.618923,2025-06-27T13:49:33,515403304+02:00 +1751024973.7229888,2025-06-27T13:49:33,618738262+02:00 +1751024973.7230368,2025-06-27T13:49:33,722789316+02:00 +1751024973.9298716,2025-06-27T13:49:33,826597608+02:00 +1751024974.0330184,2025-06-27T13:49:33,929688731+02:00 +1751024974.1365104,2025-06-27T13:49:34,032803369+02:00 +1751024974.2402976,2025-06-27T13:49:34,136331224+02:00 +1751024974.2403626,2025-06-27T13:49:34,239916475+02:00 +1751024974.4459646,2025-06-27T13:49:34,343113458+02:00 +1751024974.5498006,2025-06-27T13:49:34,445770715+02:00 +1751024974.654171,2025-06-27T13:49:34,549578917+02:00 +1751024974.7573447,2025-06-27T13:49:34,653969265+02:00 +1751024974.757397,2025-06-27T13:49:34,757186631+02:00 +1751024974.963035,2025-06-27T13:49:34,859921092+02:00 +1751024975.0660686,2025-06-27T13:49:34,962856290+02:00 +1751024975.1689343,2025-06-27T13:49:35,065894037+02:00 +1751024975.271888,2025-06-27T13:49:35,168747011+02:00 +1751024975.2719665,2025-06-27T13:49:35,271785436+02:00 +hookend +2.0649352073669434 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/after_initial_input b/tests/command_execution/.commandlogging/17510249732896639553809809502/after_initial_input new file mode 100644 index 00000000..cb93e272 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249732896639553809809502/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751024973.3084848,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00035190582275390625 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/hook_function_line-1-err b/tests/command_execution/.commandlogging/17510249732896639553809809502/hook_function_line-1-err new file mode 100644 index 00000000..d222d7db --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249732896639553809809502/hook_function_line-1-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751024973.312039,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-err +hookend +2.0655384063720703 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/hook_function_line-1-out b/tests/command_execution/.commandlogging/17510249732896639553809809502/hook_function_line-1-out new file mode 100644 index 00000000..950e0d8e --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249732896639553809809502/hook_function_line-1-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751024973.3117957,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-out +1751024973.412645,2025-06-27T13:49:33,308602832+02:00 +1751024973.5162323,2025-06-27T13:49:33,411745517+02:00 +1751024973.6192377,2025-06-27T13:49:33,515403304+02:00 +1751024973.7234488,2025-06-27T13:49:33,618738262+02:00 +1751024973.723479,2025-06-27T13:49:33,722789316+02:00 +1751024973.9300976,2025-06-27T13:49:33,826597608+02:00 +1751024974.0334477,2025-06-27T13:49:33,929688731+02:00 +1751024974.1369262,2025-06-27T13:49:34,032803369+02:00 +1751024974.2407427,2025-06-27T13:49:34,136331224+02:00 +1751024974.240885,2025-06-27T13:49:34,239916475+02:00 +1751024974.4465804,2025-06-27T13:49:34,343113458+02:00 +1751024974.5502446,2025-06-27T13:49:34,445770715+02:00 +1751024974.6546192,2025-06-27T13:49:34,549578917+02:00 +1751024974.7577233,2025-06-27T13:49:34,653969265+02:00 +1751024974.7577865,2025-06-27T13:49:34,757186631+02:00 +1751024974.9635034,2025-06-27T13:49:34,859921092+02:00 +1751024975.0665193,2025-06-27T13:49:34,962856290+02:00 +1751024975.169504,2025-06-27T13:49:35,065894037+02:00 +1751024975.27241,2025-06-27T13:49:35,168747011+02:00 +1751024975.2724528,2025-06-27T13:49:35,271785436+02:00 +hookend +2.065188407897949 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/void_input-2-err b/tests/command_execution/.commandlogging/17510249732896639553809809502/void_input-2-err new file mode 100644 index 00000000..66959c23 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249732896639553809809502/void_input-2-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751024973.3128157,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-err +hookend +2.066023349761963 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/void_input-2-out b/tests/command_execution/.commandlogging/17510249732896639553809809502/void_input-2-out new file mode 100644 index 00000000..7d955990 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510249732896639553809809502/void_input-2-out @@ -0,0 +1,4 @@ +hookstart,command,location +1751024973.3130074,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-out +hookend +2.06594181060791 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/__mergehookfunction-0-err b/tests/command_execution/.commandlogging/17510250016515771363671292394/__mergehookfunction-0-err new file mode 100644 index 00000000..8c25315a --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250016515771363671292394/__mergehookfunction-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025001.8553276,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-err +hookend +0.00029087066650390625 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/__mergehookfunction-0-out b/tests/command_execution/.commandlogging/17510250016515771363671292394/__mergehookfunction-0-out new file mode 100644 index 00000000..ca4e773c --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250016515771363671292394/__mergehookfunction-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025001.8548923,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-out +1751025001.9562304,2025-06-27T13:50:01,853103200+02:00 +1751025002.059101,2025-06-27T13:50:01,955677822+02:00 +1751025002.1628292,2025-06-27T13:50:02,058679439+02:00 +1751025002.266543,2025-06-27T13:50:02,162460192+02:00 +1751025002.2665899,2025-06-27T13:50:02,266141614+02:00 +1751025002.4724848,2025-06-27T13:50:02,369508842+02:00 +1751025002.5752213,2025-06-27T13:50:02,472254172+02:00 +1751025002.6787844,2025-06-27T13:50:02,574938281+02:00 +1751025002.7821422,2025-06-27T13:50:02,678427850+02:00 +1751025002.782174,2025-06-27T13:50:02,781686804+02:00 +1751025002.9874039,2025-06-27T13:50:02,883914389+02:00 +1751025003.0903656,2025-06-27T13:50:02,986903459+02:00 +1751025003.1938403,2025-06-27T13:50:03,090048371+02:00 +1751025003.2978895,2025-06-27T13:50:03,193497799+02:00 +1751025003.2980087,2025-06-27T13:50:03,297411844+02:00 +1751025003.5042071,2025-06-27T13:50:03,400525857+02:00 +1751025003.6072078,2025-06-27T13:50:03,503757303+02:00 +1751025003.7099783,2025-06-27T13:50:03,606778907+02:00 +1751025003.8138409,2025-06-27T13:50:03,709683530+02:00 +1751025003.8138797,2025-06-27T13:50:03,813415537+02:00 +hookend +2.0618860721588135 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/after_comand-0-err b/tests/command_execution/.commandlogging/17510250016515771363671292394/after_comand-0-err new file mode 100644 index 00000000..347a8df8 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250016515771363671292394/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025001.8538365,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.061314582824707 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/after_comand-0-out b/tests/command_execution/.commandlogging/17510250016515771363671292394/after_comand-0-out new file mode 100644 index 00000000..28cd24b7 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250016515771363671292394/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025001.8539104,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751025001.9558804,2025-06-27T13:50:01,853103200+02:00 +1751025002.0588682,2025-06-27T13:50:01,955677822+02:00 +1751025002.1626198,2025-06-27T13:50:02,058679439+02:00 +1751025002.266317,2025-06-27T13:50:02,162460192+02:00 +1751025002.2663612,2025-06-27T13:50:02,266141614+02:00 +1751025002.4723203,2025-06-27T13:50:02,369508842+02:00 +1751025002.5751565,2025-06-27T13:50:02,472254172+02:00 +1751025002.6785994,2025-06-27T13:50:02,574938281+02:00 +1751025002.781891,2025-06-27T13:50:02,678427850+02:00 +1751025002.7819412,2025-06-27T13:50:02,781686804+02:00 +1751025002.9871383,2025-06-27T13:50:02,883914389+02:00 +1751025003.090196,2025-06-27T13:50:02,986903459+02:00 +1751025003.193669,2025-06-27T13:50:03,090048371+02:00 +1751025003.297648,2025-06-27T13:50:03,193497799+02:00 +1751025003.2977364,2025-06-27T13:50:03,297411844+02:00 +1751025003.5039632,2025-06-27T13:50:03,400525857+02:00 +1751025003.6069572,2025-06-27T13:50:03,503757303+02:00 +1751025003.7098286,2025-06-27T13:50:03,606778907+02:00 +1751025003.813611,2025-06-27T13:50:03,709683530+02:00 +1751025003.8136666,2025-06-27T13:50:03,813415537+02:00 +hookend +2.061310291290283 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/after_initial_input b/tests/command_execution/.commandlogging/17510250016515771363671292394/after_initial_input new file mode 100644 index 00000000..c96c1c47 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250016515771363671292394/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751025001.8531318,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0003268718719482422 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/hook_function_line-1-err b/tests/command_execution/.commandlogging/17510250016515771363671292394/hook_function_line-1-err new file mode 100644 index 00000000..6cf7fd0d --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250016515771363671292394/hook_function_line-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025001.857174,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-err diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/hook_function_line-1-out b/tests/command_execution/.commandlogging/17510250016515771363671292394/hook_function_line-1-out new file mode 100644 index 00000000..2178d202 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250016515771363671292394/hook_function_line-1-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751025001.8568523,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-out +1751025001.9565084,2025-06-27T13:50:01,853103200+02:00 +1751025002.059533,2025-06-27T13:50:01,955677822+02:00 +1751025002.162961,2025-06-27T13:50:02,058679439+02:00 +1751025002.2667685,2025-06-27T13:50:02,162460192+02:00 +1751025002.2668214,2025-06-27T13:50:02,266141614+02:00 +1751025002.4725327,2025-06-27T13:50:02,369508842+02:00 +1751025002.5755215,2025-06-27T13:50:02,472254172+02:00 +1751025002.679004,2025-06-27T13:50:02,574938281+02:00 +1751025002.7823648,2025-06-27T13:50:02,678427850+02:00 +1751025002.7823975,2025-06-27T13:50:02,781686804+02:00 +1751025002.9876633,2025-06-27T13:50:02,883914389+02:00 +1751025003.0906081,2025-06-27T13:50:02,986903459+02:00 +1751025003.1941297,2025-06-27T13:50:03,090048371+02:00 +1751025003.2982543,2025-06-27T13:50:03,193497799+02:00 +1751025003.298465,2025-06-27T13:50:03,297411844+02:00 +1751025003.5045886,2025-06-27T13:50:03,400525857+02:00 +1751025003.607533,2025-06-27T13:50:03,503757303+02:00 +1751025003.7102613,2025-06-27T13:50:03,606778907+02:00 +1751025003.8140032,2025-06-27T13:50:03,709683530+02:00 +1751025003.8140843,2025-06-27T13:50:03,813415537+02:00 diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/void_input-2-err b/tests/command_execution/.commandlogging/17510250016515771363671292394/void_input-2-err new file mode 100644 index 00000000..ed1a22ce --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250016515771363671292394/void_input-2-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025001.8579378,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-err diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/void_input-2-out b/tests/command_execution/.commandlogging/17510250016515771363671292394/void_input-2-out new file mode 100644 index 00000000..51e30670 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250016515771363671292394/void_input-2-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751025001.857995,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-out diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/__mergehookfunction-0-err b/tests/command_execution/.commandlogging/17510250452178389148943459873/__mergehookfunction-0-err new file mode 100644 index 00000000..8844dc09 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250452178389148943459873/__mergehookfunction-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025045.2826958,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-err +hookend +0.0003314018249511719 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/__mergehookfunction-0-out b/tests/command_execution/.commandlogging/17510250452178389148943459873/__mergehookfunction-0-out new file mode 100644 index 00000000..6008773c --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250452178389148943459873/__mergehookfunction-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025045.2825418,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-out +1751025045.384085,2025-06-27T13:50:45,280375632+02:00 +1751025045.4877365,2025-06-27T13:50:45,383538228+02:00 +1751025045.5911353,2025-06-27T13:50:45,487226488+02:00 +1751025045.6939578,2025-06-27T13:50:45,590686052+02:00 +1751025045.69399,2025-06-27T13:50:45,693650914+02:00 +1751025045.9009838,2025-06-27T13:50:45,797062124+02:00 +1751025046.0049179,2025-06-27T13:50:45,900568018+02:00 +1751025046.1090384,2025-06-27T13:50:46,004457047+02:00 +1751025046.212581,2025-06-27T13:50:46,108585440+02:00 +1751025046.2126167,2025-06-27T13:50:46,211935967+02:00 +1751025046.417881,2025-06-27T13:50:46,314381746+02:00 +1751025046.5217166,2025-06-27T13:50:46,417462124+02:00 +1751025046.625979,2025-06-27T13:50:46,521265042+02:00 +1751025046.7300858,2025-06-27T13:50:46,625524586+02:00 +1751025046.7301233,2025-06-27T13:50:46,729378435+02:00 +1751025046.9364517,2025-06-27T13:50:46,833512102+02:00 +1751025047.0395906,2025-06-27T13:50:46,936307406+02:00 +1751025047.1433303,2025-06-27T13:50:47,039137248+02:00 +1751025047.24661,2025-06-27T13:50:47,142838158+02:00 +1751025047.2466393,2025-06-27T13:50:47,246050786+02:00 +hookend +2.0671043395996094 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/after_comand-0-err b/tests/command_execution/.commandlogging/17510250452178389148943459873/after_comand-0-err new file mode 100644 index 00000000..3b65d8e8 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250452178389148943459873/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025045.2813303,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0665528774261475 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/after_comand-0-out b/tests/command_execution/.commandlogging/17510250452178389148943459873/after_comand-0-out new file mode 100644 index 00000000..7b8247c4 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250452178389148943459873/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025045.2805831,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751025045.3837292,2025-06-27T13:50:45,280375632+02:00 +1751025045.487408,2025-06-27T13:50:45,383538228+02:00 +1751025045.5908647,2025-06-27T13:50:45,487226488+02:00 +1751025045.6938112,2025-06-27T13:50:45,590686052+02:00 +1751025045.6938531,2025-06-27T13:50:45,693650914+02:00 +1751025045.9007065,2025-06-27T13:50:45,797062124+02:00 +1751025046.0046499,2025-06-27T13:50:45,900568018+02:00 +1751025046.1087515,2025-06-27T13:50:46,004457047+02:00 +1751025046.2122433,2025-06-27T13:50:46,108585440+02:00 +1751025046.2122924,2025-06-27T13:50:46,211935967+02:00 +1751025046.4176378,2025-06-27T13:50:46,314381746+02:00 +1751025046.5214503,2025-06-27T13:50:46,417462124+02:00 +1751025046.625701,2025-06-27T13:50:46,521265042+02:00 +1751025046.7295597,2025-06-27T13:50:46,625524586+02:00 +1751025046.7296112,2025-06-27T13:50:46,729378435+02:00 +1751025046.9363883,2025-06-27T13:50:46,833512102+02:00 +1751025047.0393107,2025-06-27T13:50:46,936307406+02:00 +1751025047.1430643,2025-06-27T13:50:47,039137248+02:00 +1751025047.2462087,2025-06-27T13:50:47,142838158+02:00 +1751025047.2462585,2025-06-27T13:50:47,246050786+02:00 +hookend +2.067237615585327 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/after_initial_input b/tests/command_execution/.commandlogging/17510250452178389148943459873/after_initial_input new file mode 100644 index 00000000..c77f5cb2 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250452178389148943459873/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751025045.2804134,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0003705024719238281 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/hook_function_line-1-err b/tests/command_execution/.commandlogging/17510250452178389148943459873/hook_function_line-1-err new file mode 100644 index 00000000..ea79b134 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250452178389148943459873/hook_function_line-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025045.2843182,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-err diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/hook_function_line-1-out b/tests/command_execution/.commandlogging/17510250452178389148943459873/hook_function_line-1-out new file mode 100644 index 00000000..632f31ad --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250452178389148943459873/hook_function_line-1-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751025045.2837858,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-out +1751025045.3844025,2025-06-27T13:50:45,280375632+02:00 +1751025045.4879947,2025-06-27T13:50:45,383538228+02:00 +1751025045.5913992,2025-06-27T13:50:45,487226488+02:00 +1751025045.6942055,2025-06-27T13:50:45,590686052+02:00 +1751025045.694235,2025-06-27T13:50:45,693650914+02:00 +1751025045.9012675,2025-06-27T13:50:45,797062124+02:00 +1751025046.005219,2025-06-27T13:50:45,900568018+02:00 +1751025046.1093435,2025-06-27T13:50:46,004457047+02:00 +1751025046.2128456,2025-06-27T13:50:46,108585440+02:00 +1751025046.2128792,2025-06-27T13:50:46,211935967+02:00 +1751025046.4181793,2025-06-27T13:50:46,314381746+02:00 +1751025046.5220559,2025-06-27T13:50:46,417462124+02:00 +1751025046.6262612,2025-06-27T13:50:46,521265042+02:00 +1751025046.7304525,2025-06-27T13:50:46,625524586+02:00 +1751025046.7305934,2025-06-27T13:50:46,729378435+02:00 +1751025046.9365535,2025-06-27T13:50:46,833512102+02:00 +1751025047.0399206,2025-06-27T13:50:46,936307406+02:00 +1751025047.1436064,2025-06-27T13:50:47,039137248+02:00 +1751025047.2468176,2025-06-27T13:50:47,142838158+02:00 +1751025047.2468863,2025-06-27T13:50:47,246050786+02:00 diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/void_input-2-err b/tests/command_execution/.commandlogging/17510250452178389148943459873/void_input-2-err new file mode 100644 index 00000000..6b6a333d --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250452178389148943459873/void_input-2-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025045.2851515,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-err diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/void_input-2-out b/tests/command_execution/.commandlogging/17510250452178389148943459873/void_input-2-out new file mode 100644 index 00000000..aacd8d33 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510250452178389148943459873/void_input-2-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751025045.28487,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-out diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/__mergehookfunction-0-err b/tests/command_execution/.commandlogging/17510251636050157590363940597/__mergehookfunction-0-err new file mode 100644 index 00000000..2862e9c3 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251636050157590363940597/__mergehookfunction-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025163.1278405,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-err +hookend +0.0003478527069091797 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/__mergehookfunction-0-out b/tests/command_execution/.commandlogging/17510251636050157590363940597/__mergehookfunction-0-out new file mode 100644 index 00000000..38571e93 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251636050157590363940597/__mergehookfunction-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025163.1276565,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-out +1751025163.2296646,2025-06-27T13:52:43,126010999+02:00 +1751025163.332678,2025-06-27T13:52:43,229204016+02:00 +1751025163.4362495,2025-06-27T13:52:43,332348060+02:00 +1751025163.5400336,2025-06-27T13:52:43,435822620+02:00 +1751025163.5400796,2025-06-27T13:52:43,539578389+02:00 +1751025163.7461207,2025-06-27T13:52:43,642923589+02:00 +1751025163.8487296,2025-06-27T13:52:43,745949485+02:00 +1751025163.9520457,2025-06-27T13:52:43,848305170+02:00 +1751025164.0548556,2025-06-27T13:52:43,951680409+02:00 +1751025164.054888,2025-06-27T13:52:44,054503048+02:00 +1751025164.2600524,2025-06-27T13:52:44,156701058+02:00 +1751025164.3628657,2025-06-27T13:52:44,259609802+02:00 +1751025164.4660633,2025-06-27T13:52:44,362454780+02:00 +1751025164.5694096,2025-06-27T13:52:44,465646456+02:00 +1751025164.5694385,2025-06-27T13:52:44,568883577+02:00 +1751025164.7766125,2025-06-27T13:52:44,672748788+02:00 +1751025164.8797123,2025-06-27T13:52:44,776126872+02:00 +1751025164.9839118,2025-06-27T13:52:44,879273762+02:00 +1751025165.0868678,2025-06-27T13:52:44,983516263+02:00 +1751025165.0869086,2025-06-27T13:52:45,086360932+02:00 +hookend +2.061786413192749 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/after_comand-0-err b/tests/command_execution/.commandlogging/17510251636050157590363940597/after_comand-0-err new file mode 100644 index 00000000..f85a2e14 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251636050157590363940597/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025163.1263015,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.061798572540283 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/after_comand-0-out b/tests/command_execution/.commandlogging/17510251636050157590363940597/after_comand-0-out new file mode 100644 index 00000000..94cfbe55 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251636050157590363940597/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025163.1263237,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751025163.2293878,2025-06-27T13:52:43,126010999+02:00 +1751025163.3325117,2025-06-27T13:52:43,229204016+02:00 +1751025163.436009,2025-06-27T13:52:43,332348060+02:00 +1751025163.5397701,2025-06-27T13:52:43,435822620+02:00 +1751025163.53984,2025-06-27T13:52:43,539578389+02:00 +1751025163.7460322,2025-06-27T13:52:43,642923589+02:00 +1751025163.8484879,2025-06-27T13:52:43,745949485+02:00 +1751025163.9517763,2025-06-27T13:52:43,848305170+02:00 +1751025164.0546818,2025-06-27T13:52:43,951680409+02:00 +1751025164.054731,2025-06-27T13:52:44,054503048+02:00 +1751025164.259808,2025-06-27T13:52:44,156701058+02:00 +1751025164.362608,2025-06-27T13:52:44,259609802+02:00 +1751025164.4658313,2025-06-27T13:52:44,362454780+02:00 +1751025164.5690956,2025-06-27T13:52:44,465646456+02:00 +1751025164.5691423,2025-06-27T13:52:44,568883577+02:00 +1751025164.7763183,2025-06-27T13:52:44,672748788+02:00 +1751025164.8794503,2025-06-27T13:52:44,776126872+02:00 +1751025164.9836934,2025-06-27T13:52:44,879273762+02:00 +1751025165.0865355,2025-06-27T13:52:44,983516263+02:00 +1751025165.0865736,2025-06-27T13:52:45,086360932+02:00 +hookend +2.0617735385894775 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/after_initial_input b/tests/command_execution/.commandlogging/17510251636050157590363940597/after_initial_input new file mode 100644 index 00000000..2bb3c233 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251636050157590363940597/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751025163.1257226,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0004131793975830078 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/hook_function_line-1-err b/tests/command_execution/.commandlogging/17510251636050157590363940597/hook_function_line-1-err new file mode 100644 index 00000000..36c47f50 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251636050157590363940597/hook_function_line-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025163.1297665,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-err diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/hook_function_line-1-out b/tests/command_execution/.commandlogging/17510251636050157590363940597/hook_function_line-1-out new file mode 100644 index 00000000..ddabac58 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251636050157590363940597/hook_function_line-1-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751025163.1289153,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-out +1751025163.2298636,2025-06-27T13:52:43,126010999+02:00 +1751025163.332885,2025-06-27T13:52:43,229204016+02:00 +1751025163.4364414,2025-06-27T13:52:43,332348060+02:00 +1751025163.5403051,2025-06-27T13:52:43,435822620+02:00 +1751025163.5403423,2025-06-27T13:52:43,539578389+02:00 +1751025163.7463114,2025-06-27T13:52:43,642923589+02:00 +1751025163.8490877,2025-06-27T13:52:43,745949485+02:00 +1751025163.952408,2025-06-27T13:52:43,848305170+02:00 +1751025164.055152,2025-06-27T13:52:43,951680409+02:00 +1751025164.0551817,2025-06-27T13:52:44,054503048+02:00 +1751025164.2603073,2025-06-27T13:52:44,156701058+02:00 +1751025164.3631737,2025-06-27T13:52:44,259609802+02:00 +1751025164.4663167,2025-06-27T13:52:44,362454780+02:00 +1751025164.5696177,2025-06-27T13:52:44,465646456+02:00 +1751025164.569647,2025-06-27T13:52:44,568883577+02:00 +1751025164.7768393,2025-06-27T13:52:44,672748788+02:00 +1751025164.8799803,2025-06-27T13:52:44,776126872+02:00 +1751025164.984206,2025-06-27T13:52:44,879273762+02:00 +1751025165.0871933,2025-06-27T13:52:44,983516263+02:00 +1751025165.0872295,2025-06-27T13:52:45,086360932+02:00 diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/void_input-2-err b/tests/command_execution/.commandlogging/17510251636050157590363940597/void_input-2-err new file mode 100644 index 00000000..6526d21a --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251636050157590363940597/void_input-2-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025163.1307368,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-err diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/void_input-2-out b/tests/command_execution/.commandlogging/17510251636050157590363940597/void_input-2-out new file mode 100644 index 00000000..f6b1d7c4 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251636050157590363940597/void_input-2-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751025163.1303241,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-out diff --git a/tests/command_execution/.commandlogging/17510251816903650858575506288/after_comand-0-err b/tests/command_execution/.commandlogging/17510251816903650858575506288/after_comand-0-err new file mode 100644 index 00000000..a654743e --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251816903650858575506288/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025181.4983888,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.06290340423584 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251816903650858575506288/after_comand-0-out b/tests/command_execution/.commandlogging/17510251816903650858575506288/after_comand-0-out new file mode 100644 index 00000000..ded5ab1e --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251816903650858575506288/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025181.4978473,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751025181.6002717,2025-06-27T13:53:01,497443546+02:00 +1751025181.7030268,2025-06-27T13:53:01,600050708+02:00 +1751025181.8058984,2025-06-27T13:53:01,702868164+02:00 +1751025181.9090974,2025-06-27T13:53:01,805722245+02:00 +1751025181.9091518,2025-06-27T13:53:01,908883816+02:00 +1751025182.1158552,2025-06-27T13:53:02,012626990+02:00 +1751025182.218473,2025-06-27T13:53:02,115703597+02:00 +1751025182.3215532,2025-06-27T13:53:02,218395967+02:00 +1751025182.4243524,2025-06-27T13:53:02,321378043+02:00 +1751025182.4244008,2025-06-27T13:53:02,424211898+02:00 +1751025182.6301277,2025-06-27T13:53:02,527000375+02:00 +1751025182.7338514,2025-06-27T13:53:02,629954816+02:00 +1751025182.8374963,2025-06-27T13:53:02,733679180+02:00 +1751025182.9408405,2025-06-27T13:53:02,837307113+02:00 +1751025182.940898,2025-06-27T13:53:02,940662973+02:00 +1751025183.1484585,2025-06-27T13:53:03,044136102+02:00 +1751025183.2526882,2025-06-27T13:53:03,148262659+02:00 +1751025183.356477,2025-06-27T13:53:03,252497720+02:00 +1751025183.4595215,2025-06-27T13:53:03,356299141+02:00 +1751025183.4595635,2025-06-27T13:53:03,459351145+02:00 +hookend +2.0634565353393555 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251816903650858575506288/after_initial_input b/tests/command_execution/.commandlogging/17510251816903650858575506288/after_initial_input new file mode 100644 index 00000000..f2628d19 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251816903650858575506288/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751025181.4970305,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00029730796813964844 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251816903650858575506288/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510251816903650858575506288/hook_function_line-0-err new file mode 100644 index 00000000..5773bc55 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251816903650858575506288/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025181.4996805,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510251816903650858575506288/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510251816903650858575506288/hook_function_line-0-out new file mode 100644 index 00000000..9d4d4241 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251816903650858575506288/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751025181.4991786,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751025181.600605,2025-06-27T13:53:01,497443546+02:00 +1751025181.7031724,2025-06-27T13:53:01,600050708+02:00 +1751025181.806038,2025-06-27T13:53:01,702868164+02:00 +1751025181.9093595,2025-06-27T13:53:01,805722245+02:00 +1751025181.909402,2025-06-27T13:53:01,908883816+02:00 +1751025182.1161077,2025-06-27T13:53:02,012626990+02:00 +1751025182.2186182,2025-06-27T13:53:02,115703597+02:00 +1751025182.321781,2025-06-27T13:53:02,218395967+02:00 +1751025182.4248104,2025-06-27T13:53:02,321378043+02:00 +1751025182.424928,2025-06-27T13:53:02,424211898+02:00 +1751025182.6305277,2025-06-27T13:53:02,527000375+02:00 +1751025182.7341392,2025-06-27T13:53:02,629954816+02:00 +1751025182.8377776,2025-06-27T13:53:02,733679180+02:00 +1751025182.9411347,2025-06-27T13:53:02,837307113+02:00 +1751025182.9411683,2025-06-27T13:53:02,940662973+02:00 +1751025183.14889,2025-06-27T13:53:03,044136102+02:00 +1751025183.2528687,2025-06-27T13:53:03,148262659+02:00 +1751025183.3567495,2025-06-27T13:53:03,252497720+02:00 +1751025183.459835,2025-06-27T13:53:03,356299141+02:00 +1751025183.4598708,2025-06-27T13:53:03,459351145+02:00 diff --git a/tests/command_execution/.commandlogging/17510251816903650858575506288/void_input-1-err b/tests/command_execution/.commandlogging/17510251816903650858575506288/void_input-1-err new file mode 100644 index 00000000..97fbfe64 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251816903650858575506288/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025181.500547,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510251816903650858575506288/void_input-1-out b/tests/command_execution/.commandlogging/17510251816903650858575506288/void_input-1-out new file mode 100644 index 00000000..3b5279e5 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251816903650858575506288/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751025181.5000887,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510251998639835173709686216/after_comand-0-err b/tests/command_execution/.commandlogging/17510251998639835173709686216/after_comand-0-err new file mode 100644 index 00000000..4abdb1d5 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251998639835173709686216/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025199.997434,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0641515254974365 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251998639835173709686216/after_comand-0-out b/tests/command_execution/.commandlogging/17510251998639835173709686216/after_comand-0-out new file mode 100644 index 00000000..18c86891 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251998639835173709686216/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025199.997121,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751025200.0991445,2025-06-27T13:53:19,996377245+02:00 +1751025200.2018127,2025-06-27T13:53:20,098958810+02:00 +1751025200.3057718,2025-06-27T13:53:20,201704933+02:00 +1751025200.4098842,2025-06-27T13:53:20,305585857+02:00 +1751025200.4099405,2025-06-27T13:53:20,409702755+02:00 +1751025200.6155746,2025-06-27T13:53:20,512577474+02:00 +1751025200.7183986,2025-06-27T13:53:20,615404704+02:00 +1751025200.8215957,2025-06-27T13:53:20,718266813+02:00 +1751025200.925251,2025-06-27T13:53:20,821417314+02:00 +1751025200.9253125,2025-06-27T13:53:20,925068864+02:00 +1751025201.1310067,2025-06-27T13:53:21,027531072+02:00 +1751025201.234005,2025-06-27T13:53:21,130799372+02:00 +1751025201.3375275,2025-06-27T13:53:21,233833553+02:00 +1751025201.4412317,2025-06-27T13:53:21,337317387+02:00 +1751025201.4412875,2025-06-27T13:53:21,441013631+02:00 +1751025201.6479714,2025-06-27T13:53:21,544382037+02:00 +1751025201.7520883,2025-06-27T13:53:21,647790778+02:00 +1751025201.8561382,2025-06-27T13:53:21,751895965+02:00 +1751025201.9599824,2025-06-27T13:53:21,855953541+02:00 +1751025201.9600387,2025-06-27T13:53:21,959778534+02:00 +hookend +2.0644984245300293 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251998639835173709686216/after_initial_input b/tests/command_execution/.commandlogging/17510251998639835173709686216/after_initial_input new file mode 100644 index 00000000..93a0e845 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251998639835173709686216/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751025199.9962935,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00023317337036132812 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251998639835173709686216/void_input-0-err b/tests/command_execution/.commandlogging/17510251998639835173709686216/void_input-0-err new file mode 100644 index 00000000..e64738bf --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251998639835173709686216/void_input-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025199.99786,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-0-err +hookend +2.0655570030212402 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251998639835173709686216/void_input-0-out b/tests/command_execution/.commandlogging/17510251998639835173709686216/void_input-0-out new file mode 100644 index 00000000..9ce37879 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510251998639835173709686216/void_input-0-out @@ -0,0 +1,4 @@ +hookstart,command,location +1751025199.9981327,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-0-out +hookend +2.0652360916137695 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751025255216489808043222085/after_comand-0-err b/tests/command_execution/.commandlogging/1751025255216489808043222085/after_comand-0-err new file mode 100644 index 00000000..fb49b5ea --- /dev/null +++ b/tests/command_execution/.commandlogging/1751025255216489808043222085/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025255.254582,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.063617706298828 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751025255216489808043222085/after_comand-0-out b/tests/command_execution/.commandlogging/1751025255216489808043222085/after_comand-0-out new file mode 100644 index 00000000..b3259a9e --- /dev/null +++ b/tests/command_execution/.commandlogging/1751025255216489808043222085/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025255.2537127,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751025255.356508,2025-06-27T13:54:15,253688353+02:00 +1751025255.459812,2025-06-27T13:54:15,356337987+02:00 +1751025255.56363,2025-06-27T13:54:15,459609936+02:00 +1751025255.6670637,2025-06-27T13:54:15,563437583+02:00 +1751025255.667111,2025-06-27T13:54:15,666883137+02:00 +1751025255.8735282,2025-06-27T13:54:15,770565123+02:00 +1751025255.9762344,2025-06-27T13:54:15,873300552+02:00 +1751025256.0796196,2025-06-27T13:54:15,976132784+02:00 +1751025256.1830308,2025-06-27T13:54:16,079436602+02:00 +1751025256.183084,2025-06-27T13:54:16,182828461+02:00 +1751025256.3885849,2025-06-27T13:54:16,285370153+02:00 +1751025256.4926672,2025-06-27T13:54:16,388388754+02:00 +1751025256.596292,2025-06-27T13:54:16,492477423+02:00 +1751025256.6995318,2025-06-27T13:54:16,596108247+02:00 +1751025256.6995864,2025-06-27T13:54:16,699351579+02:00 +1751025256.906744,2025-06-27T13:54:16,802586769+02:00 +1751025257.0097237,2025-06-27T13:54:16,906497327+02:00 +1751025257.112916,2025-06-27T13:54:17,009548921+02:00 +1751025257.216015,2025-06-27T13:54:17,112734214+02:00 +1751025257.2160592,2025-06-27T13:54:17,215850841+02:00 +hookend +2.064181089401245 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751025255216489808043222085/after_initial_input b/tests/command_execution/.commandlogging/1751025255216489808043222085/after_initial_input new file mode 100644 index 00000000..3d37ab12 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751025255216489808043222085/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751025255.2528942,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0002999305725097656 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751025255216489808043222085/hook_function_line-0-err b/tests/command_execution/.commandlogging/1751025255216489808043222085/hook_function_line-0-err new file mode 100644 index 00000000..993fe08e --- /dev/null +++ b/tests/command_execution/.commandlogging/1751025255216489808043222085/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025255.2556272,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/1751025255216489808043222085/hook_function_line-0-out b/tests/command_execution/.commandlogging/1751025255216489808043222085/hook_function_line-0-out new file mode 100644 index 00000000..e3239dbf --- /dev/null +++ b/tests/command_execution/.commandlogging/1751025255216489808043222085/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751025255.2555933,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751025255.356788,2025-06-27T13:54:15,253688353+02:00 +1751025255.4600282,2025-06-27T13:54:15,356337987+02:00 +1751025255.5638297,2025-06-27T13:54:15,459609936+02:00 +1751025255.667492,2025-06-27T13:54:15,563437583+02:00 +1751025255.667525,2025-06-27T13:54:15,666883137+02:00 +1751025255.873663,2025-06-27T13:54:15,770565123+02:00 +1751025255.9764798,2025-06-27T13:54:15,873300552+02:00 +1751025256.0799773,2025-06-27T13:54:15,976132784+02:00 +1751025256.1832874,2025-06-27T13:54:16,079436602+02:00 +1751025256.183323,2025-06-27T13:54:16,182828461+02:00 +1751025256.3888695,2025-06-27T13:54:16,285370153+02:00 +1751025256.4929733,2025-06-27T13:54:16,388388754+02:00 +1751025256.596549,2025-06-27T13:54:16,492477423+02:00 +1751025256.6998525,2025-06-27T13:54:16,596108247+02:00 +1751025256.7087877,2025-06-27T13:54:16,699351579+02:00 +1751025256.90702,2025-06-27T13:54:16,802586769+02:00 +1751025257.0098987,2025-06-27T13:54:16,906497327+02:00 +1751025257.1131773,2025-06-27T13:54:17,009548921+02:00 +1751025257.2162976,2025-06-27T13:54:17,112734214+02:00 +1751025257.2163846,2025-06-27T13:54:17,215850841+02:00 diff --git a/tests/command_execution/.commandlogging/1751025255216489808043222085/void_input-1-err b/tests/command_execution/.commandlogging/1751025255216489808043222085/void_input-1-err new file mode 100644 index 00000000..8c1a7856 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751025255216489808043222085/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025255.2566733,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/1751025255216489808043222085/void_input-1-out b/tests/command_execution/.commandlogging/1751025255216489808043222085/void_input-1-out new file mode 100644 index 00000000..0d209a36 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751025255216489808043222085/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751025255.2568254,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510252836442209649289205695/after_comand-0-err b/tests/command_execution/.commandlogging/17510252836442209649289205695/after_comand-0-err new file mode 100644 index 00000000..fdc98224 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510252836442209649289205695/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025283.6297596,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.062788724899292 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510252836442209649289205695/after_comand-0-out b/tests/command_execution/.commandlogging/17510252836442209649289205695/after_comand-0-out new file mode 100644 index 00000000..67aa4f38 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510252836442209649289205695/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025283.6295896,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751025283.731652,2025-06-27T13:54:43,628984917+02:00 +1751025283.8351054,2025-06-27T13:54:43,731472295+02:00 +1751025283.938155,2025-06-27T13:54:43,834896165+02:00 +1751025284.0417483,2025-06-27T13:54:43,937936717+02:00 +1751025284.0417988,2025-06-27T13:54:44,041589324+02:00 +1751025284.247297,2025-06-27T13:54:44,144473946+02:00 +1751025284.3501954,2025-06-27T13:54:44,247199907+02:00 +1751025284.4529274,2025-06-27T13:54:44,350096161+02:00 +1751025284.556302,2025-06-27T13:54:44,452766433+02:00 +1751025284.5563703,2025-06-27T13:54:44,556068369+02:00 +1751025284.7619855,2025-06-27T13:54:44,658731199+02:00 +1751025284.8655388,2025-06-27T13:54:44,761784478+02:00 +1751025284.9688818,2025-06-27T13:54:44,865346091+02:00 +1751025285.0724294,2025-06-27T13:54:44,968710512+02:00 +1751025285.0724807,2025-06-27T13:54:45,072252683+02:00 +1751025285.279233,2025-06-27T13:54:45,175429769+02:00 +1751025285.3826566,2025-06-27T13:54:45,278872693+02:00 +1751025285.4867153,2025-06-27T13:54:45,382490978+02:00 +1751025285.589906,2025-06-27T13:54:45,486518980+02:00 +1751025285.589972,2025-06-27T13:54:45,589731048+02:00 +hookend +2.063058376312256 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510252836442209649289205695/after_initial_input b/tests/command_execution/.commandlogging/17510252836442209649289205695/after_initial_input new file mode 100644 index 00000000..9db26735 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510252836442209649289205695/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751025283.628793,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00039577484130859375 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510252836442209649289205695/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510252836442209649289205695/hook_function_line-0-err new file mode 100644 index 00000000..3bf8f995 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510252836442209649289205695/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025283.6312873,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510252836442209649289205695/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510252836442209649289205695/hook_function_line-0-out new file mode 100644 index 00000000..7b8fe45a --- /dev/null +++ b/tests/command_execution/.commandlogging/17510252836442209649289205695/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751025283.6302855,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751025283.7318416,2025-06-27T13:54:43,628984917+02:00 +1751025283.8355072,2025-06-27T13:54:43,731472295+02:00 +1751025283.9382944,2025-06-27T13:54:43,834896165+02:00 +1751025284.0420263,2025-06-27T13:54:43,937936717+02:00 +1751025284.042182,2025-06-27T13:54:44,041589324+02:00 +1751025284.2475243,2025-06-27T13:54:44,144473946+02:00 +1751025284.350345,2025-06-27T13:54:44,247199907+02:00 +1751025284.453221,2025-06-27T13:54:44,350096161+02:00 +1751025284.5565748,2025-06-27T13:54:44,452766433+02:00 +1751025284.5567024,2025-06-27T13:54:44,556068369+02:00 +1751025284.7623377,2025-06-27T13:54:44,658731199+02:00 +1751025284.865812,2025-06-27T13:54:44,761784478+02:00 +1751025284.9693255,2025-06-27T13:54:44,865346091+02:00 +1751025285.0726624,2025-06-27T13:54:44,968710512+02:00 +1751025285.0727136,2025-06-27T13:54:45,072252683+02:00 +1751025285.2795043,2025-06-27T13:54:45,175429769+02:00 +1751025285.3829813,2025-06-27T13:54:45,278872693+02:00 +1751025285.487003,2025-06-27T13:54:45,382490978+02:00 +1751025285.5903614,2025-06-27T13:54:45,486518980+02:00 +1751025285.590447,2025-06-27T13:54:45,589731048+02:00 diff --git a/tests/command_execution/.commandlogging/17510252836442209649289205695/void_input-1-err b/tests/command_execution/.commandlogging/17510252836442209649289205695/void_input-1-err new file mode 100644 index 00000000..4dead72f --- /dev/null +++ b/tests/command_execution/.commandlogging/17510252836442209649289205695/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025283.6321473,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510252836442209649289205695/void_input-1-out b/tests/command_execution/.commandlogging/17510252836442209649289205695/void_input-1-out new file mode 100644 index 00000000..31534854 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510252836442209649289205695/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751025283.6316533,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510254007104987491064385613/after_comand-0-err b/tests/command_execution/.commandlogging/17510254007104987491064385613/after_comand-0-err new file mode 100644 index 00000000..031e00fa --- /dev/null +++ b/tests/command_execution/.commandlogging/17510254007104987491064385613/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025400.6019657,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0626652240753174 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254007104987491064385613/after_comand-0-out b/tests/command_execution/.commandlogging/17510254007104987491064385613/after_comand-0-out new file mode 100644 index 00000000..f8b7c5f2 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510254007104987491064385613/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025400.6017509,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751025400.7049963,2025-06-27T13:56:40,601322087+02:00 +1751025400.8078349,2025-06-27T13:56:40,704751064+02:00 +1751025400.9112964,2025-06-27T13:56:40,807659938+02:00 +1751025401.0145772,2025-06-27T13:56:40,911115325+02:00 +1751025401.0146244,2025-06-27T13:56:41,014407597+02:00 +1751025401.220799,2025-06-27T13:56:41,117867751+02:00 +1751025401.3237505,2025-06-27T13:56:41,220598557+02:00 +1751025401.427161,2025-06-27T13:56:41,323574908+02:00 +1751025401.5302453,2025-06-27T13:56:41,426941400+02:00 +1751025401.530294,2025-06-27T13:56:41,530051316+02:00 +1751025401.7355483,2025-06-27T13:56:41,632335633+02:00 +1751025401.838773,2025-06-27T13:56:41,735368091+02:00 +1751025401.9422975,2025-06-27T13:56:41,838618391+02:00 +1751025402.0461788,2025-06-27T13:56:41,942109423+02:00 +1751025402.0462449,2025-06-27T13:56:42,046002601+02:00 +1751025402.2531793,2025-06-27T13:56:42,149520595+02:00 +1751025402.3564444,2025-06-27T13:56:42,252933239+02:00 +1751025402.4599247,2025-06-27T13:56:42,356268870+02:00 +1751025402.563105,2025-06-27T13:56:42,459743811+02:00 +1751025402.5631585,2025-06-27T13:56:42,562881829+02:00 +hookend +2.062818765640259 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254007104987491064385613/after_initial_input b/tests/command_execution/.commandlogging/17510254007104987491064385613/after_initial_input new file mode 100644 index 00000000..cc77db1b --- /dev/null +++ b/tests/command_execution/.commandlogging/17510254007104987491064385613/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751025400.601091,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00038504600524902344 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254007104987491064385613/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510254007104987491064385613/hook_function_line-0-err new file mode 100644 index 00000000..7f07bd22 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510254007104987491064385613/hook_function_line-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025400.6035602,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err +hookend +2.0628654956817627 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254007104987491064385613/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510254007104987491064385613/hook_function_line-0-out new file mode 100644 index 00000000..caca85c8 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510254007104987491064385613/hook_function_line-0-out @@ -0,0 +1,4 @@ +hookstart,command,location +1751025400.6035874,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +hookend +2.062034845352173 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254007104987491064385613/void_input-1-err b/tests/command_execution/.commandlogging/17510254007104987491064385613/void_input-1-err new file mode 100644 index 00000000..ef84ebb6 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510254007104987491064385613/void_input-1-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025400.6050675,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err +hookend +2.0628859996795654 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254007104987491064385613/void_input-1-out b/tests/command_execution/.commandlogging/17510254007104987491064385613/void_input-1-out new file mode 100644 index 00000000..45d117a3 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510254007104987491064385613/void_input-1-out @@ -0,0 +1,4 @@ +hookstart,command,location +1751025400.6048365,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out +hookend +2.062720537185669 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254272071111963399063064/after_comand-0-err b/tests/command_execution/.commandlogging/17510254272071111963399063064/after_comand-0-err new file mode 100644 index 00000000..628242ab --- /dev/null +++ b/tests/command_execution/.commandlogging/17510254272071111963399063064/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025427.3126733,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.067309856414795 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254272071111963399063064/after_comand-0-out b/tests/command_execution/.commandlogging/17510254272071111963399063064/after_comand-0-out new file mode 100644 index 00000000..062c1b4c --- /dev/null +++ b/tests/command_execution/.commandlogging/17510254272071111963399063064/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025427.3130336,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751025427.4159002,2025-06-27T13:57:07,312647433+02:00 +1751025427.5196712,2025-06-27T13:57:07,415686387+02:00 +1751025427.6233597,2025-06-27T13:57:07,519492051+02:00 +1751025427.7265003,2025-06-27T13:57:07,623176546+02:00 +1751025427.7265487,2025-06-27T13:57:07,726298105+02:00 +1751025427.9331162,2025-06-27T13:57:07,829728272+02:00 +1751025428.0366676,2025-06-27T13:57:07,932903510+02:00 +1751025428.1405318,2025-06-27T13:57:08,036489990+02:00 +1751025428.2440665,2025-06-27T13:57:08,140335863+02:00 +1751025428.244124,2025-06-27T13:57:08,243828599+02:00 +1751025428.4495404,2025-06-27T13:57:08,346365402+02:00 +1751025428.5537305,2025-06-27T13:57:08,449343720+02:00 +1751025428.6564236,2025-06-27T13:57:08,553544860+02:00 +1751025428.7604697,2025-06-27T13:57:08,656265249+02:00 +1751025428.7605286,2025-06-27T13:57:08,760265908+02:00 +1751025428.967604,2025-06-27T13:57:08,863605836+02:00 +1751025429.0706356,2025-06-27T13:57:08,967406636+02:00 +1751025429.1744974,2025-06-27T13:57:09,070467417+02:00 +1751025429.278072,2025-06-27T13:57:09,174292774+02:00 +1751025429.278193,2025-06-27T13:57:09,277767135+02:00 +hookend +2.0670218467712402 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254272071111963399063064/after_initial_input b/tests/command_execution/.commandlogging/17510254272071111963399063064/after_initial_input new file mode 100644 index 00000000..b1edefa8 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510254272071111963399063064/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751025427.3122406,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00040030479431152344 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254272071111963399063064/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510254272071111963399063064/hook_function_line-0-err new file mode 100644 index 00000000..38bf57e1 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510254272071111963399063064/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025427.314983,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510254272071111963399063064/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510254272071111963399063064/hook_function_line-0-out new file mode 100644 index 00000000..3e2e1f78 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510254272071111963399063064/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751025427.3147182,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751025427.4162707,2025-06-27T13:57:07,312647433+02:00 +1751025427.519971,2025-06-27T13:57:07,415686387+02:00 +1751025427.6236577,2025-06-27T13:57:07,519492051+02:00 +1751025427.7267423,2025-06-27T13:57:07,623176546+02:00 +1751025427.7267768,2025-06-27T13:57:07,726298105+02:00 +1751025427.9333644,2025-06-27T13:57:07,829728272+02:00 +1751025428.0368416,2025-06-27T13:57:07,932903510+02:00 +1751025428.140707,2025-06-27T13:57:08,036489990+02:00 +1751025428.2443616,2025-06-27T13:57:08,140335863+02:00 +1751025428.244401,2025-06-27T13:57:08,243828599+02:00 +1751025428.4498036,2025-06-27T13:57:08,346365402+02:00 +1751025428.55385,2025-06-27T13:57:08,449343720+02:00 +1751025428.6566694,2025-06-27T13:57:08,553544860+02:00 +1751025428.7606652,2025-06-27T13:57:08,656265249+02:00 +1751025428.7607744,2025-06-27T13:57:08,760265908+02:00 +1751025428.967787,2025-06-27T13:57:08,863605836+02:00 +1751025429.070797,2025-06-27T13:57:08,967406636+02:00 +1751025429.1747088,2025-06-27T13:57:09,070467417+02:00 +1751025429.278639,2025-06-27T13:57:09,174292774+02:00 +1751025429.278738,2025-06-27T13:57:09,277767135+02:00 diff --git a/tests/command_execution/.commandlogging/17510254272071111963399063064/void_input-1-err b/tests/command_execution/.commandlogging/17510254272071111963399063064/void_input-1-err new file mode 100644 index 00000000..3b2362a8 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510254272071111963399063064/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025427.3157647,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510254272071111963399063064/void_input-1-out b/tests/command_execution/.commandlogging/17510254272071111963399063064/void_input-1-out new file mode 100644 index 00000000..58decf47 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510254272071111963399063064/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751025427.3153248,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/1751025471359917208436063578/after_comand-0-err b/tests/command_execution/.commandlogging/1751025471359917208436063578/after_comand-0-err new file mode 100644 index 00000000..68e42f0c --- /dev/null +++ b/tests/command_execution/.commandlogging/1751025471359917208436063578/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025472.0001616,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0699265003204346 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751025471359917208436063578/after_comand-0-out b/tests/command_execution/.commandlogging/1751025471359917208436063578/after_comand-0-out new file mode 100644 index 00000000..25c8385c --- /dev/null +++ b/tests/command_execution/.commandlogging/1751025471359917208436063578/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025471.9996173,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751025472.103233,2025-06-27T13:57:51,999691971+02:00 +1751025472.2069929,2025-06-27T13:57:52,103054820+02:00 +1751025472.310603,2025-06-27T13:57:52,206780302+02:00 +1751025472.4142075,2025-06-27T13:57:52,310425364+02:00 +1751025472.4142647,2025-06-27T13:57:52,414016958+02:00 +1751025472.6214862,2025-06-27T13:57:52,518183417+02:00 +1751025472.7248814,2025-06-27T13:57:52,621301550+02:00 +1751025472.8281837,2025-06-27T13:57:52,724716180+02:00 +1751025472.9316301,2025-06-27T13:57:52,827979880+02:00 +1751025472.9316838,2025-06-27T13:57:52,931447658+02:00 +1751025473.137645,2025-06-27T13:57:53,033927070+02:00 +1751025473.2416506,2025-06-27T13:57:53,137451450+02:00 +1751025473.3450162,2025-06-27T13:57:53,241413483+02:00 +1751025473.4486926,2025-06-27T13:57:53,344834586+02:00 +1751025473.4487476,2025-06-27T13:57:53,448517416+02:00 +1751025473.6565785,2025-06-27T13:57:53,552931057+02:00 +1751025473.760838,2025-06-27T13:57:53,656359223+02:00 +1751025473.8646398,2025-06-27T13:57:53,760619311+02:00 +1751025473.9682086,2025-06-27T13:57:53,864466727+02:00 +1751025473.968261,2025-06-27T13:57:53,968019928+02:00 +hookend +2.0702853202819824 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751025471359917208436063578/after_initial_input b/tests/command_execution/.commandlogging/1751025471359917208436063578/after_initial_input new file mode 100644 index 00000000..7b845efa --- /dev/null +++ b/tests/command_execution/.commandlogging/1751025471359917208436063578/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751025471.9995499,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0004725456237792969 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751025472359917208436063578/hook_function_line-0-err b/tests/command_execution/.commandlogging/1751025472359917208436063578/hook_function_line-0-err new file mode 100644 index 00000000..ed69af92 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751025472359917208436063578/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025472.0019157,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/1751025472359917208436063578/hook_function_line-0-out b/tests/command_execution/.commandlogging/1751025472359917208436063578/hook_function_line-0-out new file mode 100644 index 00000000..68db9e36 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751025472359917208436063578/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751025472.0009913,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751025472.1035218,2025-06-27T13:57:51,999691971+02:00 +1751025472.2072415,2025-06-27T13:57:52,103054820+02:00 +1751025472.3108518,2025-06-27T13:57:52,206780302+02:00 +1751025472.4146404,2025-06-27T13:57:52,310425364+02:00 +1751025472.4146836,2025-06-27T13:57:52,414016958+02:00 +1751025472.6218264,2025-06-27T13:57:52,518183417+02:00 +1751025472.7251706,2025-06-27T13:57:52,621301550+02:00 +1751025472.828446,2025-06-27T13:57:52,724716180+02:00 +1751025472.931876,2025-06-27T13:57:52,827979880+02:00 +1751025472.9319108,2025-06-27T13:57:52,931447658+02:00 +1751025473.1380885,2025-06-27T13:57:53,033927070+02:00 +1751025473.2418451,2025-06-27T13:57:53,137451450+02:00 +1751025473.3453367,2025-06-27T13:57:53,241413483+02:00 +1751025473.4491801,2025-06-27T13:57:53,344834586+02:00 +1751025473.4493265,2025-06-27T13:57:53,448517416+02:00 +1751025473.6571343,2025-06-27T13:57:53,552931057+02:00 +1751025473.7611742,2025-06-27T13:57:53,656359223+02:00 +1751025473.8649185,2025-06-27T13:57:53,760619311+02:00 +1751025473.9687433,2025-06-27T13:57:53,864466727+02:00 +1751025473.968857,2025-06-27T13:57:53,968019928+02:00 diff --git a/tests/command_execution/.commandlogging/1751025472359917208436063578/void_input-1-err b/tests/command_execution/.commandlogging/1751025472359917208436063578/void_input-1-err new file mode 100644 index 00000000..e8057b13 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751025472359917208436063578/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025472.003143,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/1751025472359917208436063578/void_input-1-out b/tests/command_execution/.commandlogging/1751025472359917208436063578/void_input-1-out new file mode 100644 index 00000000..f6e3c95c --- /dev/null +++ b/tests/command_execution/.commandlogging/1751025472359917208436063578/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751025472.0028734,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/__mergehookfunction-0-err b/tests/command_execution/.commandlogging/17510255072336065249091312191/__mergehookfunction-0-err new file mode 100644 index 00000000..01374a28 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510255072336065249091312191/__mergehookfunction-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025507.1326103,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-err +hookend +0.0003523826599121094 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/__mergehookfunction-0-out b/tests/command_execution/.commandlogging/17510255072336065249091312191/__mergehookfunction-0-out new file mode 100644 index 00000000..5899e636 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510255072336065249091312191/__mergehookfunction-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025507.1323357,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-out +1751025507.2346148,2025-06-27T13:58:27,130749451+02:00 +1751025507.337919,2025-06-27T13:58:27,233897847+02:00 +1751025507.44189,2025-06-27T13:58:27,337546180+02:00 +1751025507.5458574,2025-06-27T13:58:27,441460414+02:00 +1751025507.545888,2025-06-27T13:58:27,545399628+02:00 +1751025507.7519422,2025-06-27T13:58:27,648890113+02:00 +1751025507.8555622,2025-06-27T13:58:27,751706052+02:00 +1751025507.9594657,2025-06-27T13:58:27,855190224+02:00 +1751025508.0632613,2025-06-27T13:58:27,958977819+02:00 +1751025508.0632975,2025-06-27T13:58:28,062679061+02:00 +1751025508.2687626,2025-06-27T13:58:28,165040508+02:00 +1751025508.3719714,2025-06-27T13:58:28,268331798+02:00 +1751025508.4757109,2025-06-27T13:58:28,371515725+02:00 +1751025508.5785446,2025-06-27T13:58:28,475195095+02:00 +1751025508.5785792,2025-06-27T13:58:28,578055933+02:00 +1751025508.786188,2025-06-27T13:58:28,681654434+02:00 +1751025508.8899014,2025-06-27T13:58:28,785640714+02:00 +1751025508.993785,2025-06-27T13:58:28,889422008+02:00 +1751025509.097878,2025-06-27T13:58:28,993317766+02:00 +1751025509.0979147,2025-06-27T13:58:29,097475043+02:00 +hookend +2.0685653686523438 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/after_comand-0-err b/tests/command_execution/.commandlogging/17510255072336065249091312191/after_comand-0-err new file mode 100644 index 00000000..68b7c48f --- /dev/null +++ b/tests/command_execution/.commandlogging/17510255072336065249091312191/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025507.1311936,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.068220376968384 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/after_comand-0-out b/tests/command_execution/.commandlogging/17510255072336065249091312191/after_comand-0-out new file mode 100644 index 00000000..e2846429 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510255072336065249091312191/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025507.131167,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751025507.234273,2025-06-27T13:58:27,130749451+02:00 +1751025507.3377213,2025-06-27T13:58:27,233897847+02:00 +1751025507.441636,2025-06-27T13:58:27,337546180+02:00 +1751025507.5455859,2025-06-27T13:58:27,441460414+02:00 +1751025507.5456324,2025-06-27T13:58:27,545399628+02:00 +1751025507.7517908,2025-06-27T13:58:27,648890113+02:00 +1751025507.8554025,2025-06-27T13:58:27,751706052+02:00 +1751025507.959207,2025-06-27T13:58:27,855190224+02:00 +1751025508.062907,2025-06-27T13:58:27,958977819+02:00 +1751025508.0629838,2025-06-27T13:58:28,062679061+02:00 +1751025508.2685056,2025-06-27T13:58:28,165040508+02:00 +1751025508.3716784,2025-06-27T13:58:28,268331798+02:00 +1751025508.4753897,2025-06-27T13:58:28,371515725+02:00 +1751025508.5782204,2025-06-27T13:58:28,475195095+02:00 +1751025508.5782695,2025-06-27T13:58:28,578055933+02:00 +1751025508.7858386,2025-06-27T13:58:28,681654434+02:00 +1751025508.8896294,2025-06-27T13:58:28,785640714+02:00 +1751025508.993515,2025-06-27T13:58:28,889422008+02:00 +1751025509.0976436,2025-06-27T13:58:28,993317766+02:00 +1751025509.0977015,2025-06-27T13:58:29,097475043+02:00 +hookend +2.0682644844055176 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/after_initial_input b/tests/command_execution/.commandlogging/17510255072336065249091312191/after_initial_input new file mode 100644 index 00000000..b207b3e0 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510255072336065249091312191/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751025507.130459,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00041604042053222656 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/hook_function-1-out b/tests/command_execution/.commandlogging/17510255072336065249091312191/hook_function-1-out new file mode 100644 index 00000000..2ed47f45 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510255072336065249091312191/hook_function-1-out @@ -0,0 +1,4 @@ +hookstart,command,location +1751025507.1336844,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function-1-out +hookend +2.0691657066345215 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-1-err b/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-1-err new file mode 100644 index 00000000..5a824cf3 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-1-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025507.1334321,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err +hookend +2.0691885948181152 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-2-err b/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-2-err new file mode 100644 index 00000000..78dc8653 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-2-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025507.1347325,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-err +hookend +2.069275379180908 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-2-out b/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-2-out new file mode 100644 index 00000000..ceccca7e --- /dev/null +++ b/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-2-out @@ -0,0 +1,4 @@ +hookstart,command,location +1751025507.1342754,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-out +hookend +2.0694198608398438 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255276025331534543549503/after_comand-0-err b/tests/command_execution/.commandlogging/17510255276025331534543549503/after_comand-0-err new file mode 100644 index 00000000..0dedfb11 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510255276025331534543549503/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025527.711611,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0606279373168945 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255276025331534543549503/after_comand-0-out b/tests/command_execution/.commandlogging/17510255276025331534543549503/after_comand-0-out new file mode 100644 index 00000000..5e2a657e --- /dev/null +++ b/tests/command_execution/.commandlogging/17510255276025331534543549503/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025527.7119074,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751025527.8139644,2025-06-27T13:58:47,711427243+02:00 +1751025527.9168062,2025-06-27T13:58:47,813825594+02:00 +1751025528.0209754,2025-06-27T13:58:47,916619974+02:00 +1751025528.1243684,2025-06-27T13:58:48,020775569+02:00 +1751025528.1244204,2025-06-27T13:58:48,124181222+02:00 +1751025528.330576,2025-06-27T13:58:48,227344498+02:00 +1751025528.4335198,2025-06-27T13:58:48,330418944+02:00 +1751025528.5368764,2025-06-27T13:58:48,433431433+02:00 +1751025528.6395414,2025-06-27T13:58:48,536715067+02:00 +1751025528.6395843,2025-06-27T13:58:48,639405603+02:00 +1751025528.8444307,2025-06-27T13:58:48,741522411+02:00 +1751025528.9473386,2025-06-27T13:58:48,844228325+02:00 +1751025529.0510168,2025-06-27T13:58:48,947243059+02:00 +1751025529.1541693,2025-06-27T13:58:49,050812356+02:00 +1751025529.1542137,2025-06-27T13:58:49,153999009+02:00 +1751025529.3615324,2025-06-27T13:58:49,257799192+02:00 +1751025529.4643962,2025-06-27T13:58:49,361349528+02:00 +1751025529.567755,2025-06-27T13:58:49,464308508+02:00 +1751025529.6707795,2025-06-27T13:58:49,567581701+02:00 +1751025529.670833,2025-06-27T13:58:49,670626448+02:00 +hookend +2.0605273246765137 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255276025331534543549503/after_initial_input b/tests/command_execution/.commandlogging/17510255276025331534543549503/after_initial_input new file mode 100644 index 00000000..27bec6a7 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510255276025331534543549503/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751025527.71133,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00039458274841308594 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255276025331534543549503/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510255276025331534543549503/hook_function_line-0-err new file mode 100644 index 00000000..e62e826b --- /dev/null +++ b/tests/command_execution/.commandlogging/17510255276025331534543549503/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025527.7133007,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510255276025331534543549503/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510255276025331534543549503/hook_function_line-0-out new file mode 100644 index 00000000..a808773f --- /dev/null +++ b/tests/command_execution/.commandlogging/17510255276025331534543549503/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751025527.7134886,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751025527.8140647,2025-06-27T13:58:47,711427243+02:00 +1751025527.9169397,2025-06-27T13:58:47,813825594+02:00 +1751025528.021276,2025-06-27T13:58:47,916619974+02:00 +1751025528.124598,2025-06-27T13:58:48,020775569+02:00 +1751025528.1246364,2025-06-27T13:58:48,124181222+02:00 +1751025528.3308501,2025-06-27T13:58:48,227344498+02:00 +1751025528.4339871,2025-06-27T13:58:48,330418944+02:00 +1751025528.5371954,2025-06-27T13:58:48,433431433+02:00 +1751025528.6397917,2025-06-27T13:58:48,536715067+02:00 +1751025528.6398268,2025-06-27T13:58:48,639405603+02:00 +1751025528.8447032,2025-06-27T13:58:48,741522411+02:00 +1751025528.9475691,2025-06-27T13:58:48,844228325+02:00 +1751025529.0513563,2025-06-27T13:58:48,947243059+02:00 +1751025529.1544342,2025-06-27T13:58:49,050812356+02:00 +1751025529.1544662,2025-06-27T13:58:49,153999009+02:00 +1751025529.3618002,2025-06-27T13:58:49,257799192+02:00 +1751025529.4646258,2025-06-27T13:58:49,361349528+02:00 +1751025529.5680122,2025-06-27T13:58:49,464308508+02:00 +1751025529.670993,2025-06-27T13:58:49,567581701+02:00 +1751025529.6710644,2025-06-27T13:58:49,670626448+02:00 diff --git a/tests/command_execution/.commandlogging/17510256027664721227509456362/after_comand-0-err b/tests/command_execution/.commandlogging/17510256027664721227509456362/after_comand-0-err new file mode 100644 index 00000000..95e462bc --- /dev/null +++ b/tests/command_execution/.commandlogging/17510256027664721227509456362/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025602.543343,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0634477138519287 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510256027664721227509456362/after_comand-0-out b/tests/command_execution/.commandlogging/17510256027664721227509456362/after_comand-0-out new file mode 100644 index 00000000..48c7ad25 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510256027664721227509456362/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025602.5431175,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751025602.6467426,2025-06-27T14:00:02,542544049+02:00 +1751025602.7506711,2025-06-27T14:00:02,646505528+02:00 +1751025602.85362,2025-06-27T14:00:02,750485007+02:00 +1751025602.9565606,2025-06-27T14:00:02,853443572+02:00 +1751025602.9566293,2025-06-27T14:00:02,956354685+02:00 +1751025603.1617093,2025-06-27T14:00:03,059264600+02:00 +1751025603.26436,2025-06-27T14:00:03,161491660+02:00 +1751025603.367914,2025-06-27T14:00:03,264158433+02:00 +1751025603.4715135,2025-06-27T14:00:03,367690308+02:00 +1751025603.4715717,2025-06-27T14:00:03,471326874+02:00 +1751025603.6764874,2025-06-27T14:00:03,573731886+02:00 +1751025603.780525,2025-06-27T14:00:03,676326441+02:00 +1751025603.884776,2025-06-27T14:00:03,780319808+02:00 +1751025603.9883416,2025-06-27T14:00:03,884556561+02:00 +1751025603.9883945,2025-06-27T14:00:03,988150694+02:00 +1751025604.194678,2025-06-27T14:00:04,091389843+02:00 +1751025604.2980683,2025-06-27T14:00:04,194495825+02:00 +1751025604.4016473,2025-06-27T14:00:04,297964011+02:00 +1751025604.5045235,2025-06-27T14:00:04,401458410+02:00 +1751025604.504574,2025-06-27T14:00:04,504363205+02:00 +hookend +2.063692092895508 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510256027664721227509456362/after_initial_input b/tests/command_execution/.commandlogging/17510256027664721227509456362/after_initial_input new file mode 100644 index 00000000..6cc0a383 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510256027664721227509456362/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751025602.542486,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00041747093200683594 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510256027664721227509456362/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510256027664721227509456362/hook_function_line-0-err new file mode 100644 index 00000000..9ba974a9 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510256027664721227509456362/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025602.5448723,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510256027664721227509456362/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510256027664721227509456362/hook_function_line-0-out new file mode 100644 index 00000000..72d1d66d --- /dev/null +++ b/tests/command_execution/.commandlogging/17510256027664721227509456362/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751025602.5447268,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751025602.6469595,2025-06-27T14:00:02,542544049+02:00 +1751025602.7508574,2025-06-27T14:00:02,646505528+02:00 +1751025602.8537726,2025-06-27T14:00:02,750485007+02:00 +1751025602.9568024,2025-06-27T14:00:02,853443572+02:00 +1751025602.9568424,2025-06-27T14:00:02,956354685+02:00 +1751025603.161894,2025-06-27T14:00:03,059264600+02:00 +1751025603.264556,2025-06-27T14:00:03,161491660+02:00 +1751025603.368203,2025-06-27T14:00:03,264158433+02:00 +1751025603.4717526,2025-06-27T14:00:03,367690308+02:00 +1751025603.4719052,2025-06-27T14:00:03,471326874+02:00 +1751025603.6767697,2025-06-27T14:00:03,573731886+02:00 +1751025603.780762,2025-06-27T14:00:03,676326441+02:00 +1751025603.885012,2025-06-27T14:00:03,780319808+02:00 +1751025603.9885695,2025-06-27T14:00:03,884556561+02:00 +1751025603.9886894,2025-06-27T14:00:03,988150694+02:00 +1751025604.194844,2025-06-27T14:00:04,091389843+02:00 +1751025604.2983108,2025-06-27T14:00:04,194495825+02:00 +1751025604.4017768,2025-06-27T14:00:04,297964011+02:00 +1751025604.5048475,2025-06-27T14:00:04,401458410+02:00 +1751025604.5050457,2025-06-27T14:00:04,504363205+02:00 diff --git a/tests/command_execution/.commandlogging/17510256027664721227509456362/void_input-1-err b/tests/command_execution/.commandlogging/17510256027664721227509456362/void_input-1-err new file mode 100644 index 00000000..bbf1228c --- /dev/null +++ b/tests/command_execution/.commandlogging/17510256027664721227509456362/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025602.5459979,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510256027664721227509456362/void_input-1-out b/tests/command_execution/.commandlogging/17510256027664721227509456362/void_input-1-out new file mode 100644 index 00000000..83f06c30 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510256027664721227509456362/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751025602.5456643,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510256224287177846385816737/after_comand-0-err b/tests/command_execution/.commandlogging/17510256224287177846385816737/after_comand-0-err new file mode 100644 index 00000000..dbd71724 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510256224287177846385816737/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025622.326613,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.066263198852539 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510256224287177846385816737/after_comand-0-out b/tests/command_execution/.commandlogging/17510256224287177846385816737/after_comand-0-out new file mode 100644 index 00000000..5a5ce1c8 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510256224287177846385816737/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751025622.3262641,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751025622.429025,2025-06-27T14:00:22,325733299+02:00 +1751025622.5330932,2025-06-27T14:00:22,428878837+02:00 +1751025622.636672,2025-06-27T14:00:22,532867926+02:00 +1751025622.7408543,2025-06-27T14:00:22,636475143+02:00 +1751025622.7409136,2025-06-27T14:00:22,740654805+02:00 +1751025622.9466255,2025-06-27T14:00:22,843731354+02:00 +1751025623.0495155,2025-06-27T14:00:22,946465152+02:00 +1751025623.152981,2025-06-27T14:00:23,049348307+02:00 +1751025623.2566907,2025-06-27T14:00:23,152778527+02:00 +1751025623.2567353,2025-06-27T14:00:23,256524604+02:00 +1751025623.4640906,2025-06-27T14:00:23,360310786+02:00 +1751025623.5678632,2025-06-27T14:00:23,463878972+02:00 +1751025623.671694,2025-06-27T14:00:23,567674892+02:00 +1751025623.774292,2025-06-27T14:00:23,671489244+02:00 +1751025623.7743518,2025-06-27T14:00:23,774083170+02:00 +1751025623.980715,2025-06-27T14:00:23,877549477+02:00 +1751025624.0833313,2025-06-27T14:00:23,980540683+02:00 +1751025624.186854,2025-06-27T14:00:24,083154155+02:00 +1751025624.2907655,2025-06-27T14:00:24,186650056+02:00 +1751025624.2908206,2025-06-27T14:00:24,290588206+02:00 +hookend +2.066553831100464 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510256224287177846385816737/after_initial_input b/tests/command_execution/.commandlogging/17510256224287177846385816737/after_initial_input new file mode 100644 index 00000000..0af1c9b2 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510256224287177846385816737/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751025622.3254218,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00042891502380371094 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510256224287177846385816737/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510256224287177846385816737/hook_function_line-0-err new file mode 100644 index 00000000..f0c2ff8d --- /dev/null +++ b/tests/command_execution/.commandlogging/17510256224287177846385816737/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025622.3284142,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510256224287177846385816737/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510256224287177846385816737/hook_function_line-0-out new file mode 100644 index 00000000..908dd2d8 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510256224287177846385816737/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751025622.3281448,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751025622.4293225,2025-06-27T14:00:22,325733299+02:00 +1751025622.5333452,2025-06-27T14:00:22,428878837+02:00 +1751025622.6369295,2025-06-27T14:00:22,532867926+02:00 +1751025622.7411463,2025-06-27T14:00:22,636475143+02:00 +1751025622.7411833,2025-06-27T14:00:22,740654805+02:00 +1751025622.9467833,2025-06-27T14:00:22,843731354+02:00 +1751025623.049717,2025-06-27T14:00:22,946465152+02:00 +1751025623.153167,2025-06-27T14:00:23,049348307+02:00 +1751025623.2569754,2025-06-27T14:00:23,152778527+02:00 +1751025623.2570112,2025-06-27T14:00:23,256524604+02:00 +1751025623.4643643,2025-06-27T14:00:23,360310786+02:00 +1751025623.5680466,2025-06-27T14:00:23,463878972+02:00 +1751025623.671895,2025-06-27T14:00:23,567674892+02:00 +1751025623.7746,2025-06-27T14:00:23,671489244+02:00 +1751025623.7747304,2025-06-27T14:00:23,774083170+02:00 +1751025623.980818,2025-06-27T14:00:23,877549477+02:00 +1751025624.0835953,2025-06-27T14:00:23,980540683+02:00 +1751025624.187138,2025-06-27T14:00:24,083154155+02:00 +1751025624.291031,2025-06-27T14:00:24,186650056+02:00 +1751025624.29106,2025-06-27T14:00:24,290588206+02:00 diff --git a/tests/command_execution/.commandlogging/17510256224287177846385816737/void_input-1-err b/tests/command_execution/.commandlogging/17510256224287177846385816737/void_input-1-err new file mode 100644 index 00000000..b25b3475 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510256224287177846385816737/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025622.3293867,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510256224287177846385816737/void_input-1-out b/tests/command_execution/.commandlogging/17510256224287177846385816737/void_input-1-out new file mode 100644 index 00000000..53ccfa05 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510256224287177846385816737/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751025622.3290567,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510258395706702362975748128/after_comand-0-err b/tests/command_execution/.commandlogging/17510258395706702362975748128/after_comand-0-err new file mode 100644 index 00000000..948d3aa9 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510258395706702362975748128/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751025839.4475145,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +4.0271735191345215 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510258395706702362975748128/after_comand-0-out b/tests/command_execution/.commandlogging/17510258395706702362975748128/after_comand-0-out new file mode 100644 index 00000000..e2212f63 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510258395706702362975748128/after_comand-0-out @@ -0,0 +1,43 @@ +hookstart,command,location +1751025839.4467447,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751025839.5501387,2025-06-27T14:03:59,446541473+02:00 +1751025839.653766,2025-06-27T14:03:59,549817680+02:00 +1751025839.757669,2025-06-27T14:03:59,653572759+02:00 +1751025839.861193,2025-06-27T14:03:59,757461401+02:00 +1751025839.861239,2025-06-27T14:03:59,860991490+02:00 +1751025840.066302,2025-06-27T14:03:59,963824123+02:00 +1751025840.1700182,2025-06-27T14:04:00,066115435+02:00 +1751025840.273529,2025-06-27T14:04:00,169797397+02:00 +1751025840.3760376,2025-06-27T14:04:00,273358132+02:00 +1751025840.3760777,2025-06-27T14:04:00,375953114+02:00 +1751025840.5808022,2025-06-27T14:04:00,478111166+02:00 +1751025840.6845968,2025-06-27T14:04:00,580631585+02:00 +1751025840.788011,2025-06-27T14:04:00,684393486+02:00 +1751025840.891531,2025-06-27T14:04:00,787828306+02:00 +1751025840.8915858,2025-06-27T14:04:00,891340761+02:00 +1751025841.0982122,2025-06-27T14:04:00,994669748+02:00 +1751025841.2023964,2025-06-27T14:04:01,098032363+02:00 +1751025841.3060384,2025-06-27T14:04:01,202185716+02:00 +1751025841.409874,2025-06-27T14:04:01,305841799+02:00 +1751025841.4099278,2025-06-27T14:04:01,409708679+02:00 +1751025841.615314,2025-06-27T14:04:01,512277835+02:00 +1751025841.7180119,2025-06-27T14:04:01,615106691+02:00 +1751025841.8207154,2025-06-27T14:04:01,717871635+02:00 +1751025841.9235218,2025-06-27T14:04:01,820620802+02:00 +1751025841.9235637,2025-06-27T14:04:01,923365293+02:00 +1751025842.1294136,2025-06-27T14:04:02,025889307+02:00 +1751025842.2325792,2025-06-27T14:04:02,129241997+02:00 +1751025842.3365586,2025-06-27T14:04:02,232432008+02:00 +1751025842.4403107,2025-06-27T14:04:02,336346806+02:00 +1751025842.440378,2025-06-27T14:04:02,440114558+02:00 +1751025842.6480255,2025-06-27T14:04:02,544045469+02:00 +1751025842.751901,2025-06-27T14:04:02,647809619+02:00 +1751025842.8555825,2025-06-27T14:04:02,751723208+02:00 +1751025842.9589014,2025-06-27T14:04:02,855375249+02:00 +1751025842.9589655,2025-06-27T14:04:02,958729254+02:00 +1751025843.1665258,2025-06-27T14:04:03,062269380+02:00 +1751025843.270394,2025-06-27T14:04:03,166345456+02:00 +1751025843.3732042,2025-06-27T14:04:03,270212008+02:00 +1751025843.47431,2025-06-27T14:04:03,373016217+02:00 +hookend +4.027923583984375 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510258395706702362975748128/after_initial_input b/tests/command_execution/.commandlogging/17510258395706702362975748128/after_initial_input new file mode 100644 index 00000000..726ecfc0 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510258395706702362975748128/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751025839.4467099,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00040340423583984375 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510258415706702362975748128/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510258415706702362975748128/hook_function_line-0-err new file mode 100644 index 00000000..7c317f2b --- /dev/null +++ b/tests/command_execution/.commandlogging/17510258415706702362975748128/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025841.4511003,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510258415706702362975748128/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510258415706702362975748128/hook_function_line-0-out new file mode 100644 index 00000000..a1382bf1 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510258415706702362975748128/hook_function_line-0-out @@ -0,0 +1,41 @@ +hookstart,command,location +1751025841.4504118,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751025841.4505067,2025-06-27T14:03:59,446541473+02:00 +1751025841.450526,2025-06-27T14:03:59,549817680+02:00 +1751025841.450539,2025-06-27T14:03:59,653572759+02:00 +1751025841.4505506,2025-06-27T14:03:59,757461401+02:00 +1751025841.4505606,2025-06-27T14:03:59,860991490+02:00 +1751025841.4505706,2025-06-27T14:03:59,963824123+02:00 +1751025841.4505801,2025-06-27T14:04:00,066115435+02:00 +1751025841.4505925,2025-06-27T14:04:00,169797397+02:00 +1751025841.4506037,2025-06-27T14:04:00,273358132+02:00 +1751025841.450614,2025-06-27T14:04:00,375953114+02:00 +1751025841.4506245,2025-06-27T14:04:00,478111166+02:00 +1751025841.4506352,2025-06-27T14:04:00,580631585+02:00 +1751025841.450645,2025-06-27T14:04:00,684393486+02:00 +1751025841.4506552,2025-06-27T14:04:00,787828306+02:00 +1751025841.4506648,2025-06-27T14:04:00,891340761+02:00 +1751025841.4506748,2025-06-27T14:04:00,994669748+02:00 +1751025841.4506853,2025-06-27T14:04:01,098032363+02:00 +1751025841.4506946,2025-06-27T14:04:01,202185716+02:00 +1751025841.4507048,2025-06-27T14:04:01,305841799+02:00 +1751025841.4507143,2025-06-27T14:04:01,409708679+02:00 +1751025841.6155467,2025-06-27T14:04:01,512277835+02:00 +1751025841.7182586,2025-06-27T14:04:01,615106691+02:00 +1751025841.8209147,2025-06-27T14:04:01,717871635+02:00 +1751025841.9238021,2025-06-27T14:04:01,820620802+02:00 +1751025841.9238417,2025-06-27T14:04:01,923365293+02:00 +1751025842.1298134,2025-06-27T14:04:02,025889307+02:00 +1751025842.2328346,2025-06-27T14:04:02,129241997+02:00 +1751025842.3367553,2025-06-27T14:04:02,232432008+02:00 +1751025842.4405558,2025-06-27T14:04:02,336346806+02:00 +1751025842.4406257,2025-06-27T14:04:02,440114558+02:00 +1751025842.6482458,2025-06-27T14:04:02,544045469+02:00 +1751025842.7521603,2025-06-27T14:04:02,647809619+02:00 +1751025842.855846,2025-06-27T14:04:02,751723208+02:00 +1751025842.9590425,2025-06-27T14:04:02,855375249+02:00 +1751025842.9590797,2025-06-27T14:04:02,958729254+02:00 +1751025843.1667721,2025-06-27T14:04:03,062269380+02:00 +1751025843.2705991,2025-06-27T14:04:03,166345456+02:00 +1751025843.3734477,2025-06-27T14:04:03,270212008+02:00 +1751025843.474556,2025-06-27T14:04:03,373016217+02:00 diff --git a/tests/command_execution/.commandlogging/17510258415706702362975748128/void_input-1-err b/tests/command_execution/.commandlogging/17510258415706702362975748128/void_input-1-err new file mode 100644 index 00000000..b38d7499 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510258415706702362975748128/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751025841.452847,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510258415706702362975748128/void_input-1-out b/tests/command_execution/.commandlogging/17510258415706702362975748128/void_input-1-out new file mode 100644 index 00000000..64d86c3b --- /dev/null +++ b/tests/command_execution/.commandlogging/17510258415706702362975748128/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751025841.4524884,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510262308517412947345727383/after_comand-0-err b/tests/command_execution/.commandlogging/17510262308517412947345727383/after_comand-0-err new file mode 100644 index 00000000..7dc0102e --- /dev/null +++ b/tests/command_execution/.commandlogging/17510262308517412947345727383/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751026230.2728353,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0665335655212402 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262308517412947345727383/after_comand-0-out b/tests/command_execution/.commandlogging/17510262308517412947345727383/after_comand-0-out new file mode 100644 index 00000000..127764a1 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510262308517412947345727383/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751026230.2727761,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751026230.3751075,2025-06-27T14:10:30,272206616+02:00 +1751026230.478258,2025-06-27T14:10:30,374911003+02:00 +1751026230.581943,2025-06-27T14:10:30,478105536+02:00 +1751026230.6857522,2025-06-27T14:10:30,581764935+02:00 +1751026230.6857998,2025-06-27T14:10:30,685593778+02:00 +1751026230.8926735,2025-06-27T14:10:30,789805855+02:00 +1751026230.995479,2025-06-27T14:10:30,892501877+02:00 +1751026231.099107,2025-06-27T14:10:30,995313311+02:00 +1751026231.2019875,2025-06-27T14:10:31,098929476+02:00 +1751026231.202036,2025-06-27T14:10:31,201838492+02:00 +1751026231.4080274,2025-06-27T14:10:31,304569644+02:00 +1751026231.5119398,2025-06-27T14:10:31,407828749+02:00 +1751026231.6160142,2025-06-27T14:10:31,511766723+02:00 +1751026231.7193801,2025-06-27T14:10:31,615822599+02:00 +1751026231.719431,2025-06-27T14:10:31,719200715+02:00 +1751026231.9262526,2025-06-27T14:10:31,822619286+02:00 +1751026232.0302503,2025-06-27T14:10:31,926025780+02:00 +1751026232.1338286,2025-06-27T14:10:32,030038480+02:00 +1751026232.237811,2025-06-27T14:10:32,133595273+02:00 +1751026232.2378638,2025-06-27T14:10:32,237640607+02:00 +hookend +2.0666401386260986 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262308517412947345727383/after_initial_input b/tests/command_execution/.commandlogging/17510262308517412947345727383/after_initial_input new file mode 100644 index 00000000..e5631c52 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510262308517412947345727383/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026230.2724032,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0003001689910888672 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262308517412947345727383/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510262308517412947345727383/hook_function_line-0-err new file mode 100644 index 00000000..fb079659 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510262308517412947345727383/hook_function_line-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751026230.2741935,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err +hookend +2.066547155380249 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262308517412947345727383/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510262308517412947345727383/hook_function_line-0-out new file mode 100644 index 00000000..e458d9e0 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510262308517412947345727383/hook_function_line-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751026230.273834,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751026230.3753934,2025-06-27T14:10:30,272206616+02:00 +1751026230.478484,2025-06-27T14:10:30,374911003+02:00 +1751026230.582226,2025-06-27T14:10:30,478105536+02:00 +1751026230.6860278,2025-06-27T14:10:30,581764935+02:00 +1751026230.6860604,2025-06-27T14:10:30,685593778+02:00 +1751026230.8930013,2025-06-27T14:10:30,789805855+02:00 +1751026230.995726,2025-06-27T14:10:30,892501877+02:00 +1751026231.0993862,2025-06-27T14:10:30,995313311+02:00 +1751026231.2025938,2025-06-27T14:10:31,098929476+02:00 +1751026231.2026384,2025-06-27T14:10:31,201838492+02:00 +1751026231.408422,2025-06-27T14:10:31,304569644+02:00 +1751026231.512244,2025-06-27T14:10:31,407828749+02:00 +1751026231.6162817,2025-06-27T14:10:31,511766723+02:00 +1751026231.7196095,2025-06-27T14:10:31,615822599+02:00 +1751026231.7196429,2025-06-27T14:10:31,719200715+02:00 +1751026231.9265945,2025-06-27T14:10:31,822619286+02:00 +1751026232.030471,2025-06-27T14:10:31,926025780+02:00 +1751026232.1340892,2025-06-27T14:10:32,030038480+02:00 +1751026232.2380168,2025-06-27T14:10:32,133595273+02:00 +1751026232.2381382,2025-06-27T14:10:32,237640607+02:00 +hookend +2.0668773651123047 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262308517412947345727383/void_input-1-err b/tests/command_execution/.commandlogging/17510262308517412947345727383/void_input-1-err new file mode 100644 index 00000000..eac51f1f --- /dev/null +++ b/tests/command_execution/.commandlogging/17510262308517412947345727383/void_input-1-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751026230.2753475,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err +hookend +2.066596508026123 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262308517412947345727383/void_input-1-out b/tests/command_execution/.commandlogging/17510262308517412947345727383/void_input-1-out new file mode 100644 index 00000000..65b6960b --- /dev/null +++ b/tests/command_execution/.commandlogging/17510262308517412947345727383/void_input-1-out @@ -0,0 +1,4 @@ +hookstart,command,location +1751026230.2749617,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out +hookend +2.0670061111450195 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262584556859485228340177/after_comand-0-err b/tests/command_execution/.commandlogging/17510262584556859485228340177/after_comand-0-err new file mode 100644 index 00000000..fbdedf22 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510262584556859485228340177/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751026258.9879906,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.061581611633301 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262584556859485228340177/after_comand-0-out b/tests/command_execution/.commandlogging/17510262584556859485228340177/after_comand-0-out new file mode 100644 index 00000000..3261f598 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510262584556859485228340177/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751026258.9881458,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751026259.0914407,2025-06-27T14:10:58,988143613+02:00 +1751026259.194614,2025-06-27T14:10:59,091188028+02:00 +1751026259.2986937,2025-06-27T14:10:59,194439917+02:00 +1751026259.4027033,2025-06-27T14:10:59,298502449+02:00 +1751026259.4027684,2025-06-27T14:10:59,402495916+02:00 +1751026259.607782,2025-06-27T14:10:59,505381737+02:00 +1751026259.7100987,2025-06-27T14:10:59,607692274+02:00 +1751026259.8136327,2025-06-27T14:10:59,710023434+02:00 +1751026259.9173212,2025-06-27T14:10:59,813409606+02:00 +1751026259.917376,2025-06-27T14:10:59,917094618+02:00 +1751026260.122609,2025-06-27T14:11:00,019406447+02:00 +1751026260.2250557,2025-06-27T14:11:00,122391246+02:00 +1751026260.327135,2025-06-27T14:11:00,224972144+02:00 +1751026260.431017,2025-06-27T14:11:00,326990714+02:00 +1751026260.4310849,2025-06-27T14:11:00,430804181+02:00 +1751026260.6376443,2025-06-27T14:11:00,533720919+02:00 +1751026260.7412584,2025-06-27T14:11:00,637449363+02:00 +1751026260.8444908,2025-06-27T14:11:00,741066094+02:00 +1751026260.9479384,2025-06-27T14:11:00,844317060+02:00 +1751026260.9479933,2025-06-27T14:11:00,947774038+02:00 +hookend +2.061372756958008 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262584556859485228340177/after_initial_input b/tests/command_execution/.commandlogging/17510262584556859485228340177/after_initial_input new file mode 100644 index 00000000..bbcd08c6 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510262584556859485228340177/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026258.9875085,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0002760887145996094 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262584556859485228340177/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510262584556859485228340177/hook_function_line-0-err new file mode 100644 index 00000000..52c957cc --- /dev/null +++ b/tests/command_execution/.commandlogging/17510262584556859485228340177/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026258.9894662,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510262584556859485228340177/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510262584556859485228340177/hook_function_line-0-out new file mode 100644 index 00000000..deb2c0f1 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510262584556859485228340177/hook_function_line-0-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026258.9893608,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out diff --git a/tests/command_execution/.commandlogging/17510262584556859485228340177/void_input-1-err b/tests/command_execution/.commandlogging/17510262584556859485228340177/void_input-1-err new file mode 100644 index 00000000..bb8aec8f --- /dev/null +++ b/tests/command_execution/.commandlogging/17510262584556859485228340177/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026258.9909468,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510262584556859485228340177/void_input-1-out b/tests/command_execution/.commandlogging/17510262584556859485228340177/void_input-1-out new file mode 100644 index 00000000..32d8dd85 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510262584556859485228340177/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026258.9901593,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510265094798630923828201528/after_comand-0-err b/tests/command_execution/.commandlogging/17510265094798630923828201528/after_comand-0-err new file mode 100644 index 00000000..9a4a3c07 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510265094798630923828201528/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751026509.7212293,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +0.00024580955505371094 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510265094798630923828201528/after_initial_input b/tests/command_execution/.commandlogging/17510265094798630923828201528/after_initial_input new file mode 100644 index 00000000..0c50461d --- /dev/null +++ b/tests/command_execution/.commandlogging/17510265094798630923828201528/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026509.7209318,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0003578662872314453 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510265114127274637998895824/after_initial_input b/tests/command_execution/.commandlogging/17510265114127274637998895824/after_initial_input new file mode 100644 index 00000000..307531a5 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510265114127274637998895824/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026511.0907288,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00038313865661621094 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751026518371415368267621105/after_comand-0-out b/tests/command_execution/.commandlogging/1751026518371415368267621105/after_comand-0-out new file mode 100644 index 00000000..6f0aac3e --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026518371415368267621105/after_comand-0-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026518.3292692,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out diff --git a/tests/command_execution/.commandlogging/1751026518371415368267621105/after_initial_input b/tests/command_execution/.commandlogging/1751026518371415368267621105/after_initial_input new file mode 100644 index 00000000..f8b0af4b --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026518371415368267621105/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026518.3286898,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00033855438232421875 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751026559268498061844594090/after_comand-0-err b/tests/command_execution/.commandlogging/1751026559268498061844594090/after_comand-0-err new file mode 100644 index 00000000..0b447dba --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026559268498061844594090/after_comand-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026559.7063663,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err diff --git a/tests/command_execution/.commandlogging/1751026559268498061844594090/after_comand-0-out b/tests/command_execution/.commandlogging/1751026559268498061844594090/after_comand-0-out new file mode 100644 index 00000000..9425dd74 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026559268498061844594090/after_comand-0-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026559.7057812,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out diff --git a/tests/command_execution/.commandlogging/1751026559268498061844594090/after_initial_input b/tests/command_execution/.commandlogging/1751026559268498061844594090/after_initial_input new file mode 100644 index 00000000..d65b2504 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026559268498061844594090/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026559.70461,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00038814544677734375 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510265928765007803655267033/after_comand-0-err b/tests/command_execution/.commandlogging/17510265928765007803655267033/after_comand-0-err new file mode 100644 index 00000000..65a1c86e --- /dev/null +++ b/tests/command_execution/.commandlogging/17510265928765007803655267033/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751026592.6806405,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0641462802886963 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510265928765007803655267033/after_comand-0-out b/tests/command_execution/.commandlogging/17510265928765007803655267033/after_comand-0-out new file mode 100644 index 00000000..55f38682 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510265928765007803655267033/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751026592.6809862,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751026592.7839358,2025-06-27T14:16:32,680529214+02:00 +1751026592.8870528,2025-06-27T14:16:32,783720109+02:00 +1751026592.990534,2025-06-27T14:16:32,886941716+02:00 +1751026593.0936594,2025-06-27T14:16:32,990351131+02:00 +1751026593.0937178,2025-06-27T14:16:33,093486297+02:00 +1751026593.2998767,2025-06-27T14:16:33,196640076+02:00 +1751026593.4032564,2025-06-27T14:16:33,299702267+02:00 +1751026593.506707,2025-06-27T14:16:33,403077178+02:00 +1751026593.6104572,2025-06-27T14:16:33,506527063+02:00 +1751026593.6105146,2025-06-27T14:16:33,610267974+02:00 +1751026593.8156621,2025-06-27T14:16:33,712605619+02:00 +1751026593.9190843,2025-06-27T14:16:33,815477262+02:00 +1751026594.0224307,2025-06-27T14:16:33,918881236+02:00 +1751026594.1259453,2025-06-27T14:16:34,022218901+02:00 +1751026594.126015,2025-06-27T14:16:34,125729006+02:00 +1751026594.3327193,2025-06-27T14:16:34,229546104+02:00 +1751026594.4362435,2025-06-27T14:16:34,332547850+02:00 +1751026594.539921,2025-06-27T14:16:34,436064538+02:00 +1751026594.6432395,2025-06-27T14:16:34,539720314+02:00 +1751026594.6432915,2025-06-27T14:16:34,643067080+02:00 +hookend +2.0638034343719482 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510265928765007803655267033/after_initial_input b/tests/command_execution/.commandlogging/17510265928765007803655267033/after_initial_input new file mode 100644 index 00000000..b003ff53 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510265928765007803655267033/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026592.6802669,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0003974437713623047 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510265928765007803655267033/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510265928765007803655267033/hook_function_line-0-err new file mode 100644 index 00000000..830a3267 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510265928765007803655267033/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026592.6824698,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510265928765007803655267033/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510265928765007803655267033/hook_function_line-0-out new file mode 100644 index 00000000..a123f49c --- /dev/null +++ b/tests/command_execution/.commandlogging/17510265928765007803655267033/hook_function_line-0-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026592.6822672,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out diff --git a/tests/command_execution/.commandlogging/17510265928765007803655267033/void_input-1-err b/tests/command_execution/.commandlogging/17510265928765007803655267033/void_input-1-err new file mode 100644 index 00000000..9aa0d2a0 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510265928765007803655267033/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026592.684079,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510265928765007803655267033/void_input-1-out b/tests/command_execution/.commandlogging/17510265928765007803655267033/void_input-1-out new file mode 100644 index 00000000..c87dfd33 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510265928765007803655267033/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026592.6833804,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/1751026607815276382744962604/after_comand-0-err b/tests/command_execution/.commandlogging/1751026607815276382744962604/after_comand-0-err new file mode 100644 index 00000000..a2f7fba3 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026607815276382744962604/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751026607.0690691,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.05488657951355 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751026607815276382744962604/after_comand-0-out b/tests/command_execution/.commandlogging/1751026607815276382744962604/after_comand-0-out new file mode 100644 index 00000000..d451e8fc --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026607815276382744962604/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751026607.0694141,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751026607.1724882,2025-06-27T14:16:47,069048036+02:00 +1751026607.2755337,2025-06-27T14:16:47,172287922+02:00 +1751026607.3788028,2025-06-27T14:16:47,275363469+02:00 +1751026607.4817626,2025-06-27T14:16:47,378624977+02:00 +1751026607.4818113,2025-06-27T14:16:47,481596390+02:00 +1751026607.6868484,2025-06-27T14:16:47,584490472+02:00 +1751026607.789346,2025-06-27T14:16:47,686692352+02:00 +1751026607.8921108,2025-06-27T14:16:47,789175501+02:00 +1751026607.9952111,2025-06-27T14:16:47,891949927+02:00 +1751026607.995274,2025-06-27T14:16:47,994996080+02:00 +1751026608.199566,2025-06-27T14:16:48,096922748+02:00 +1751026608.3023953,2025-06-27T14:16:48,199380055+02:00 +1751026608.4059129,2025-06-27T14:16:48,302215488+02:00 +1751026608.5093114,2025-06-27T14:16:48,405699137+02:00 +1751026608.5093603,2025-06-27T14:16:48,509144047+02:00 +1751026608.7142584,2025-06-27T14:16:48,611598448+02:00 +1751026608.8175492,2025-06-27T14:16:48,714106877+02:00 +1751026608.919865,2025-06-27T14:16:48,817382341+02:00 +1751026609.0223927,2025-06-27T14:16:48,919731812+02:00 +1751026609.0224407,2025-06-27T14:16:49,022180868+02:00 +hookend +2.0545835494995117 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751026607815276382744962604/after_initial_input b/tests/command_execution/.commandlogging/1751026607815276382744962604/after_initial_input new file mode 100644 index 00000000..6f7e75d7 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026607815276382744962604/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026607.068769,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00038361549377441406 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751026607815276382744962604/hook_function_line-0-err b/tests/command_execution/.commandlogging/1751026607815276382744962604/hook_function_line-0-err new file mode 100644 index 00000000..8b68a077 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026607815276382744962604/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026607.07143,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/1751026607815276382744962604/hook_function_line-0-out b/tests/command_execution/.commandlogging/1751026607815276382744962604/hook_function_line-0-out new file mode 100644 index 00000000..03fff582 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026607815276382744962604/hook_function_line-0-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026607.0708988,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out diff --git a/tests/command_execution/.commandlogging/1751026607815276382744962604/void_input-1-err b/tests/command_execution/.commandlogging/1751026607815276382744962604/void_input-1-err new file mode 100644 index 00000000..f3427fd8 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026607815276382744962604/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026607.0738516,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/1751026607815276382744962604/void_input-1-out b/tests/command_execution/.commandlogging/1751026607815276382744962604/void_input-1-out new file mode 100644 index 00000000..14054dbd --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026607815276382744962604/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026607.073409,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510266517757071367764566299/after_comand-0-err b/tests/command_execution/.commandlogging/17510266517757071367764566299/after_comand-0-err new file mode 100644 index 00000000..1f419d63 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510266517757071367764566299/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751026651.4191258,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0642478466033936 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510266517757071367764566299/after_comand-0-out b/tests/command_execution/.commandlogging/17510266517757071367764566299/after_comand-0-out new file mode 100644 index 00000000..ee704bb6 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510266517757071367764566299/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751026651.4186988,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751026651.5211303,2025-06-27T14:17:31,418216173+02:00 +1751026651.6250062,2025-06-27T14:17:31,521010438+02:00 +1751026651.7283168,2025-06-27T14:17:31,624816780+02:00 +1751026651.8320718,2025-06-27T14:17:31,728113074+02:00 +1751026651.8321247,2025-06-27T14:17:31,831901130+02:00 +1751026652.038494,2025-06-27T14:17:31,935572745+02:00 +1751026652.1418188,2025-06-27T14:17:32,038308640+02:00 +1751026652.2449887,2025-06-27T14:17:32,141654157+02:00 +1751026652.348765,2025-06-27T14:17:32,244821274+02:00 +1751026652.3488154,2025-06-27T14:17:32,348583528+02:00 +1751026652.5538218,2025-06-27T14:17:32,450725237+02:00 +1751026652.6576793,2025-06-27T14:17:32,553635678+02:00 +1751026652.7607288,2025-06-27T14:17:32,657513788+02:00 +1751026652.864585,2025-06-27T14:17:32,760581865+02:00 +1751026652.8646398,2025-06-27T14:17:32,864383301+02:00 +1751026653.0719461,2025-06-27T14:17:32,968398426+02:00 +1751026653.1752827,2025-06-27T14:17:33,071799008+02:00 +1751026653.2788777,2025-06-27T14:17:33,175002909+02:00 +1751026653.3819928,2025-06-27T14:17:33,278691267+02:00 +1751026653.3820417,2025-06-27T14:17:33,381839586+02:00 +hookend +2.064628839492798 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510266517757071367764566299/after_initial_input b/tests/command_execution/.commandlogging/17510266517757071367764566299/after_initial_input new file mode 100644 index 00000000..76bc3b2f --- /dev/null +++ b/tests/command_execution/.commandlogging/17510266517757071367764566299/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026651.417465,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00029468536376953125 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510266517757071367764566299/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510266517757071367764566299/hook_function_line-0-err new file mode 100644 index 00000000..def8974e --- /dev/null +++ b/tests/command_execution/.commandlogging/17510266517757071367764566299/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026651.419953,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510266517757071367764566299/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510266517757071367764566299/hook_function_line-0-out new file mode 100644 index 00000000..1da1be52 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510266517757071367764566299/hook_function_line-0-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026651.41978,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out diff --git a/tests/command_execution/.commandlogging/17510266517757071367764566299/void_input-1-err b/tests/command_execution/.commandlogging/17510266517757071367764566299/void_input-1-err new file mode 100644 index 00000000..c0a54e20 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510266517757071367764566299/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026651.4223967,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510266517757071367764566299/void_input-1-out b/tests/command_execution/.commandlogging/17510266517757071367764566299/void_input-1-out new file mode 100644 index 00000000..c81def24 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510266517757071367764566299/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026651.4217474,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510266883393410295416928852/after_comand-0-out b/tests/command_execution/.commandlogging/17510266883393410295416928852/after_comand-0-out new file mode 100644 index 00000000..3c093442 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510266883393410295416928852/after_comand-0-out @@ -0,0 +1,5 @@ +hookstart,command,location +1751026688.4996274,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751026688.4996877,2025-06-27T14:18:08,499490993+02:00 +hookend +0.00028586387634277344 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510266883393410295416928852/after_initial_input b/tests/command_execution/.commandlogging/17510266883393410295416928852/after_initial_input new file mode 100644 index 00000000..15b330cc --- /dev/null +++ b/tests/command_execution/.commandlogging/17510266883393410295416928852/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026688.499564,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0003838539123535156 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510266955637139366934248799/after_comand-0-err b/tests/command_execution/.commandlogging/17510266955637139366934248799/after_comand-0-err new file mode 100644 index 00000000..2a09b5f7 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510266955637139366934248799/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751026695.668374,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0637378692626953 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510266955637139366934248799/after_comand-0-out b/tests/command_execution/.commandlogging/17510266955637139366934248799/after_comand-0-out new file mode 100644 index 00000000..05062d8c --- /dev/null +++ b/tests/command_execution/.commandlogging/17510266955637139366934248799/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751026695.668303,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751026695.7718816,2025-06-27T14:18:15,668048167+02:00 +1751026695.875152,2025-06-27T14:18:15,771631154+02:00 +1751026695.97775,2025-06-27T14:18:15,874979922+02:00 +1751026696.0814168,2025-06-27T14:18:15,977596118+02:00 +1751026696.0814817,2025-06-27T14:18:16,081195984+02:00 +1751026696.288561,2025-06-27T14:18:16,185259003+02:00 +1751026696.3917172,2025-06-27T14:18:16,288370191+02:00 +1751026696.4948266,2025-06-27T14:18:16,391546864+02:00 +1751026696.5988772,2025-06-27T14:18:16,494643688+02:00 +1751026696.5989227,2025-06-27T14:18:16,598702114+02:00 +1751026696.8037715,2025-06-27T14:18:16,700788482+02:00 +1751026696.9069934,2025-06-27T14:18:16,803604222+02:00 +1751026697.010031,2025-06-27T14:18:16,906819406+02:00 +1751026697.113483,2025-06-27T14:18:17,009873450+02:00 +1751026697.1135292,2025-06-27T14:18:17,113296751+02:00 +1751026697.320057,2025-06-27T14:18:17,216804121+02:00 +1751026697.4232287,2025-06-27T14:18:17,319885316+02:00 +1751026697.5268004,2025-06-27T14:18:17,423031274+02:00 +1751026697.6305957,2025-06-27T14:18:17,526590615+02:00 +1751026697.6306455,2025-06-27T14:18:17,630183694+02:00 +hookend +2.0637710094451904 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510266955637139366934248799/after_initial_input b/tests/command_execution/.commandlogging/17510266955637139366934248799/after_initial_input new file mode 100644 index 00000000..62c25d22 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510266955637139366934248799/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026695.6681755,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0003533363342285156 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510266955637139366934248799/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510266955637139366934248799/hook_function_line-0-err new file mode 100644 index 00000000..04477837 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510266955637139366934248799/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026695.6701922,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510266955637139366934248799/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510266955637139366934248799/hook_function_line-0-out new file mode 100644 index 00000000..ac32271a --- /dev/null +++ b/tests/command_execution/.commandlogging/17510266955637139366934248799/hook_function_line-0-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026695.6697938,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out diff --git a/tests/command_execution/.commandlogging/17510266955637139366934248799/void_input-1-err b/tests/command_execution/.commandlogging/17510266955637139366934248799/void_input-1-err new file mode 100644 index 00000000..73830963 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510266955637139366934248799/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026695.671787,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510266955637139366934248799/void_input-1-out b/tests/command_execution/.commandlogging/17510266955637139366934248799/void_input-1-out new file mode 100644 index 00000000..b1492397 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510266955637139366934248799/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026695.6711195,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510267507745254711084627794/after_comand-0-out b/tests/command_execution/.commandlogging/17510267507745254711084627794/after_comand-0-out new file mode 100644 index 00000000..6c7fc65f --- /dev/null +++ b/tests/command_execution/.commandlogging/17510267507745254711084627794/after_comand-0-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026750.6013825,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out diff --git a/tests/command_execution/.commandlogging/17510267507745254711084627794/after_initial_input b/tests/command_execution/.commandlogging/17510267507745254711084627794/after_initial_input new file mode 100644 index 00000000..96bcebdc --- /dev/null +++ b/tests/command_execution/.commandlogging/17510267507745254711084627794/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026750.6007426,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0003650188446044922 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510267636351896796693948683/after_comand-0-err b/tests/command_execution/.commandlogging/17510267636351896796693948683/after_comand-0-err new file mode 100644 index 00000000..cbd227ca --- /dev/null +++ b/tests/command_execution/.commandlogging/17510267636351896796693948683/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751026763.673795,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0628888607025146 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510267636351896796693948683/after_comand-0-out b/tests/command_execution/.commandlogging/17510267636351896796693948683/after_comand-0-out new file mode 100644 index 00000000..fa7bc82e --- /dev/null +++ b/tests/command_execution/.commandlogging/17510267636351896796693948683/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751026763.674215,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751026763.776317,2025-06-27T14:19:23,673343403+02:00 +1751026763.8798256,2025-06-27T14:19:23,776095351+02:00 +1751026763.9838147,2025-06-27T14:19:23,879656018+02:00 +1751026764.0870447,2025-06-27T14:19:23,983626106+02:00 +1751026764.087099,2025-06-27T14:19:24,086862311+02:00 +1751026764.292814,2025-06-27T14:19:24,190524943+02:00 +1751026764.3954859,2025-06-27T14:19:24,292657252+02:00 +1751026764.4989293,2025-06-27T14:19:24,395390133+02:00 +1751026764.6025093,2025-06-27T14:19:24,498749692+02:00 +1751026764.6025598,2025-06-27T14:19:24,602283011+02:00 +1751026764.8077233,2025-06-27T14:19:24,704943610+02:00 +1751026764.9117305,2025-06-27T14:19:24,807544865+02:00 +1751026765.0152652,2025-06-27T14:19:24,911533056+02:00 +1751026765.1188836,2025-06-27T14:19:25,015080109+02:00 +1751026765.1189322,2025-06-27T14:19:25,118672067+02:00 +1751026765.3247104,2025-06-27T14:19:25,221685699+02:00 +1751026765.4282873,2025-06-27T14:19:25,324546397+02:00 +1751026765.5319662,2025-06-27T14:19:25,428086281+02:00 +1751026765.635191,2025-06-27T14:19:25,531795987+02:00 +1751026765.6352494,2025-06-27T14:19:25,635010271+02:00 +hookend +2.0627310276031494 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510267636351896796693948683/after_initial_input b/tests/command_execution/.commandlogging/17510267636351896796693948683/after_initial_input new file mode 100644 index 00000000..7c8c3c1c --- /dev/null +++ b/tests/command_execution/.commandlogging/17510267636351896796693948683/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026763.6732488,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0003185272216796875 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510267636351896796693948683/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510267636351896796693948683/hook_function_line-0-err new file mode 100644 index 00000000..cedf4fb0 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510267636351896796693948683/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026763.6751006,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510267636351896796693948683/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510267636351896796693948683/hook_function_line-0-out new file mode 100644 index 00000000..2a001e26 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510267636351896796693948683/hook_function_line-0-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026763.6750348,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out diff --git a/tests/command_execution/.commandlogging/17510267636351896796693948683/void_input-1-err b/tests/command_execution/.commandlogging/17510267636351896796693948683/void_input-1-err new file mode 100644 index 00000000..5e03467a --- /dev/null +++ b/tests/command_execution/.commandlogging/17510267636351896796693948683/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026763.6768014,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510267636351896796693948683/void_input-1-out b/tests/command_execution/.commandlogging/17510267636351896796693948683/void_input-1-out new file mode 100644 index 00000000..bf490c06 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510267636351896796693948683/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026763.6762762,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/1751026779829708360205953396/after_comand-0-err b/tests/command_execution/.commandlogging/1751026779829708360205953396/after_comand-0-err new file mode 100644 index 00000000..7067e504 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026779829708360205953396/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751026779.0963843,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0563852787017822 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751026779829708360205953396/after_comand-0-out b/tests/command_execution/.commandlogging/1751026779829708360205953396/after_comand-0-out new file mode 100644 index 00000000..216b5a0d --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026779829708360205953396/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751026779.0968504,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751026779.1994562,2025-06-27T14:19:39,096509526+02:00 +1751026779.3025992,2025-06-27T14:19:39,199287297+02:00 +1751026779.405609,2025-06-27T14:19:39,302439175+02:00 +1751026779.5091515,2025-06-27T14:19:39,405387910+02:00 +1751026779.509212,2025-06-27T14:19:39,508992370+02:00 +1751026779.714302,2025-06-27T14:19:39,611892643+02:00 +1751026779.8164065,2025-06-27T14:19:39,714129566+02:00 +1751026779.91923,2025-06-27T14:19:39,816328294+02:00 +1751026780.02203,2025-06-27T14:19:39,919055800+02:00 +1751026780.0220773,2025-06-27T14:19:40,021867765+02:00 +1751026780.2264137,2025-06-27T14:19:40,123961123+02:00 +1751026780.3297822,2025-06-27T14:19:40,226227578+02:00 +1751026780.4332862,2025-06-27T14:19:40,329588063+02:00 +1751026780.5362582,2025-06-27T14:19:40,433108507+02:00 +1751026780.5364819,2025-06-27T14:19:40,536082400+02:00 +1751026780.7435198,2025-06-27T14:19:40,639633789+02:00 +1751026780.8463368,2025-06-27T14:19:40,743317445+02:00 +1751026780.9489062,2025-06-27T14:19:40,846185248+02:00 +1751026781.0514433,2025-06-27T14:19:40,948767639+02:00 +1751026781.051486,2025-06-27T14:19:41,051277525+02:00 +hookend +2.0559403896331787 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751026779829708360205953396/after_initial_input b/tests/command_execution/.commandlogging/1751026779829708360205953396/after_initial_input new file mode 100644 index 00000000..c2e2fcfa --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026779829708360205953396/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026779.0957153,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0002777576446533203 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751026779829708360205953396/hook_function_line-0-err b/tests/command_execution/.commandlogging/1751026779829708360205953396/hook_function_line-0-err new file mode 100644 index 00000000..a034d975 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026779829708360205953396/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026779.0976548,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/1751026779829708360205953396/hook_function_line-0-out b/tests/command_execution/.commandlogging/1751026779829708360205953396/hook_function_line-0-out new file mode 100644 index 00000000..a34d7681 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026779829708360205953396/hook_function_line-0-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026779.0972695,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out diff --git a/tests/command_execution/.commandlogging/1751026779829708360205953396/void_input-1-err b/tests/command_execution/.commandlogging/1751026779829708360205953396/void_input-1-err new file mode 100644 index 00000000..18c298d5 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026779829708360205953396/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026779.0991516,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/1751026779829708360205953396/void_input-1-out b/tests/command_execution/.commandlogging/1751026779829708360205953396/void_input-1-out new file mode 100644 index 00000000..a94d24b8 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751026779829708360205953396/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026779.0990255,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510268714191413081950033424/after_comand-0-err b/tests/command_execution/.commandlogging/17510268714191413081950033424/after_comand-0-err new file mode 100644 index 00000000..4c5958c1 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510268714191413081950033424/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751026871.0323958,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.064208507537842 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510268714191413081950033424/after_comand-0-out b/tests/command_execution/.commandlogging/17510268714191413081950033424/after_comand-0-out new file mode 100644 index 00000000..c8e414db --- /dev/null +++ b/tests/command_execution/.commandlogging/17510268714191413081950033424/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751026871.0317252,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751026871.1357622,2025-06-27T14:21:11,031870141+02:00 +1751026871.2385554,2025-06-27T14:21:11,135567117+02:00 +1751026871.341978,2025-06-27T14:21:11,238367839+02:00 +1751026871.4452443,2025-06-27T14:21:11,341800540+02:00 +1751026871.4452946,2025-06-27T14:21:11,445092161+02:00 +1751026871.651909,2025-06-27T14:21:11,548956507+02:00 +1751026871.7558722,2025-06-27T14:21:11,651823509+02:00 +1751026871.8602436,2025-06-27T14:21:11,755678790+02:00 +1751026871.9638085,2025-06-27T14:21:11,860038307+02:00 +1751026871.9638605,2025-06-27T14:21:11,963626673+02:00 +1751026872.1685615,2025-06-27T14:21:12,065688241+02:00 +1751026872.2724328,2025-06-27T14:21:12,168382451+02:00 +1751026872.375569,2025-06-27T14:21:12,272228184+02:00 +1751026872.4789877,2025-06-27T14:21:12,375409412+02:00 +1751026872.4790323,2025-06-27T14:21:12,478822200+02:00 +1751026872.6856282,2025-06-27T14:21:12,581937517+02:00 +1751026872.7886677,2025-06-27T14:21:12,685417774+02:00 +1751026872.8917994,2025-06-27T14:21:12,788502231+02:00 +1751026872.994869,2025-06-27T14:21:12,891644307+02:00 +1751026872.9949222,2025-06-27T14:21:12,994704218+02:00 +hookend +2.0647518634796143 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510268714191413081950033424/after_initial_input b/tests/command_execution/.commandlogging/17510268714191413081950033424/after_initial_input new file mode 100644 index 00000000..3f301766 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510268714191413081950033424/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026871.0314047,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00023794174194335938 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510268714191413081950033424/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510268714191413081950033424/hook_function_line-0-err new file mode 100644 index 00000000..399313e8 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510268714191413081950033424/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026871.0329273,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510268714191413081950033424/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510268714191413081950033424/hook_function_line-0-out new file mode 100644 index 00000000..b8191a18 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510268714191413081950033424/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751026871.0326538,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751026871.1360528,2025-06-27T14:21:11,031870141+02:00 +1751026871.2388198,2025-06-27T14:21:11,135567117+02:00 +1751026871.3422408,2025-06-27T14:21:11,238367839+02:00 +1751026871.4455245,2025-06-27T14:21:11,341800540+02:00 +1751026871.4455545,2025-06-27T14:21:11,445092161+02:00 +1751026871.6520875,2025-06-27T14:21:11,548956507+02:00 +1751026871.756447,2025-06-27T14:21:11,651823509+02:00 +1751026871.8605232,2025-06-27T14:21:11,755678790+02:00 +1751026871.9639878,2025-06-27T14:21:11,860038307+02:00 +1751026871.964022,2025-06-27T14:21:11,963626673+02:00 +1751026872.1692526,2025-06-27T14:21:12,065688241+02:00 +1751026872.2729127,2025-06-27T14:21:12,168382451+02:00 +1751026872.3758254,2025-06-27T14:21:12,272228184+02:00 +1751026872.4793065,2025-06-27T14:21:12,375409412+02:00 +1751026872.479352,2025-06-27T14:21:12,478822200+02:00 +1751026872.68594,2025-06-27T14:21:12,581937517+02:00 +1751026872.7889457,2025-06-27T14:21:12,685417774+02:00 +1751026872.8921578,2025-06-27T14:21:12,788502231+02:00 +1751026872.9951468,2025-06-27T14:21:12,891644307+02:00 +1751026872.995347,2025-06-27T14:21:12,994704218+02:00 diff --git a/tests/command_execution/.commandlogging/17510268714191413081950033424/void_input-1-err b/tests/command_execution/.commandlogging/17510268714191413081950033424/void_input-1-err new file mode 100644 index 00000000..b01e66df --- /dev/null +++ b/tests/command_execution/.commandlogging/17510268714191413081950033424/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026871.0344193,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510268714191413081950033424/void_input-1-out b/tests/command_execution/.commandlogging/17510268714191413081950033424/void_input-1-out new file mode 100644 index 00000000..e417998e --- /dev/null +++ b/tests/command_execution/.commandlogging/17510268714191413081950033424/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026871.0343752,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510269497858991073078199574/after_comand-0-err b/tests/command_execution/.commandlogging/17510269497858991073078199574/after_comand-0-err new file mode 100644 index 00000000..3c23476f --- /dev/null +++ b/tests/command_execution/.commandlogging/17510269497858991073078199574/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751026949.027579,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0604867935180664 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510269497858991073078199574/after_comand-0-out b/tests/command_execution/.commandlogging/17510269497858991073078199574/after_comand-0-out new file mode 100644 index 00000000..cc7ec516 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510269497858991073078199574/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751026949.0267227,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751026949.1299002,2025-06-27T14:22:29,026825151+02:00 +1751026949.2327542,2025-06-27T14:22:29,129722252+02:00 +1751026949.3358202,2025-06-27T14:22:29,232587301+02:00 +1751026949.4387908,2025-06-27T14:22:29,335662318+02:00 +1751026949.4388378,2025-06-27T14:22:29,438621495+02:00 +1751026949.6442845,2025-06-27T14:22:29,541593016+02:00 +1751026949.7468996,2025-06-27T14:22:29,644143932+02:00 +1751026949.850049,2025-06-27T14:22:29,746753842+02:00 +1751026949.9537158,2025-06-27T14:22:29,849886099+02:00 +1751026949.9537692,2025-06-27T14:22:29,953519694+02:00 +1751026950.1590896,2025-06-27T14:22:30,055711395+02:00 +1751026950.262423,2025-06-27T14:22:30,158913682+02:00 +1751026950.3656576,2025-06-27T14:22:30,262095536+02:00 +1751026950.468785,2025-06-27T14:22:30,365471485+02:00 +1751026950.4688332,2025-06-27T14:22:30,468622420+02:00 +1751026950.6757038,2025-06-27T14:22:30,572106563+02:00 +1751026950.7790773,2025-06-27T14:22:30,675527759+02:00 +1751026950.8828402,2025-06-27T14:22:30,778915990+02:00 +1751026950.9862244,2025-06-27T14:22:30,882664375+02:00 +1751026950.9862745,2025-06-27T14:22:30,986088943+02:00 +hookend +2.0611064434051514 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510269497858991073078199574/after_initial_input b/tests/command_execution/.commandlogging/17510269497858991073078199574/after_initial_input new file mode 100644 index 00000000..9d0d0b37 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510269497858991073078199574/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026949.0263505,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00026226043701171875 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510269497858991073078199574/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510269497858991073078199574/hook_function_line-0-err new file mode 100644 index 00000000..4db7f3cd --- /dev/null +++ b/tests/command_execution/.commandlogging/17510269497858991073078199574/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026949.0290883,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510269497858991073078199574/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510269497858991073078199574/hook_function_line-0-out new file mode 100644 index 00000000..522e3090 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510269497858991073078199574/hook_function_line-0-out @@ -0,0 +1,12 @@ +hookstart,command,location +1751026949.0287106,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751026949.6445916,2025-06-27T14:22:29,026825151+02:0214:22:522025-06-27T14:22:29,2325873214:223025-06-27T14:22:29,43802025-06-27T14:22:29,541593016+02:00 +1751026949.747134,2025-06-27T14:22:29,644143932+02:00 +1751026949.850288,2025-06-27T14:22:29,746753842+02:00 +1751026950.1594117,2025-06-27T14:22:29,849886099+02:027T14:22:29,953519694+02:2025-06-27T14:22:30,055711395+02:00 +1751026950.2626638,2025-06-27T14:22:30,158913682+02:00 +1751026950.3659105,2025-06-27T14:22:30,262095536+02:00 +1751026950.6760566,2025-06-27T14:22:30,3654714025-06-27T14:22:30,46862242025-06-27T14:22:30,572106563+02:00 +1751026950.7793517,2025-06-27T14:22:30,675527759+02:00 +1751026950.9865396,2025-06-27T14:22:30,778915990+02025-06-27T14:22:30,882664375+02:00 +1751026950.986593,2025-06-27T14:22:30,986088943+02:00 diff --git a/tests/command_execution/.commandlogging/17510269497858991073078199574/void_input-1-err b/tests/command_execution/.commandlogging/17510269497858991073078199574/void_input-1-err new file mode 100644 index 00000000..7bf9d9b5 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510269497858991073078199574/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026949.0302224,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510269497858991073078199574/void_input-1-out b/tests/command_execution/.commandlogging/17510269497858991073078199574/void_input-1-out new file mode 100644 index 00000000..b3d9bfcd --- /dev/null +++ b/tests/command_execution/.commandlogging/17510269497858991073078199574/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026949.0301285,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510269733222053283261616000/after_comand-0-err b/tests/command_execution/.commandlogging/17510269733222053283261616000/after_comand-0-err new file mode 100644 index 00000000..7a0a9db7 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510269733222053283261616000/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751026973.4351606,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0596261024475098 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510269733222053283261616000/after_comand-0-out b/tests/command_execution/.commandlogging/17510269733222053283261616000/after_comand-0-out new file mode 100644 index 00000000..086f5b19 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510269733222053283261616000/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751026973.4349902,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751026973.5363824,2025-06-27T14:22:53,433664368+02:00 +1751026973.6401517,2025-06-27T14:22:53,536096093+02:00 +1751026973.742979,2025-06-27T14:22:53,639979226+02:00 +1751026973.8460808,2025-06-27T14:22:53,742815790+02:00 +1751026973.8461509,2025-06-27T14:22:53,845924145+02:00 +1751026974.0517359,2025-06-27T14:22:53,949250640+02:00 +1751026974.1548228,2025-06-27T14:22:54,051590258+02:00 +1751026974.2577326,2025-06-27T14:22:54,154654976+02:00 +1751026974.3610392,2025-06-27T14:22:54,257587861+02:00 +1751026974.3610945,2025-06-27T14:22:54,360870774+02:00 +1751026974.565956,2025-06-27T14:22:54,463107506+02:00 +1751026974.6691127,2025-06-27T14:22:54,565792427+02:00 +1751026974.7722335,2025-06-27T14:22:54,668940144+02:00 +1751026974.876019,2025-06-27T14:22:54,772040769+02:00 +1751026974.8760703,2025-06-27T14:22:54,875859648+02:00 +1751026975.0832024,2025-06-27T14:22:54,979727016+02:00 +1751026975.1868246,2025-06-27T14:22:55,083016475+02:00 +1751026975.2897794,2025-06-27T14:22:55,186649983+02:00 +1751026975.392949,2025-06-27T14:22:55,289627336+02:00 +1751026975.3929956,2025-06-27T14:22:55,392771067+02:00 +hookend +2.0597941875457764 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510269733222053283261616000/after_initial_input b/tests/command_execution/.commandlogging/17510269733222053283261616000/after_initial_input new file mode 100644 index 00000000..47f3ab15 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510269733222053283261616000/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751026973.4342835,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0004374980926513672 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510269733222053283261616000/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510269733222053283261616000/hook_function_line-0-err new file mode 100644 index 00000000..910b4894 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510269733222053283261616000/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026973.4372725,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510269733222053283261616000/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510269733222053283261616000/hook_function_line-0-out new file mode 100644 index 00000000..652e5271 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510269733222053283261616000/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751026973.4367912,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751026973.5366933,2025-06-27T14:22:53,433664368+02:00 +1751026973.6403627,2025-06-27T14:22:53,536096093+02:00 +1751026973.7433047,2025-06-27T14:22:53,639979226+02:00 +1751026973.846538,2025-06-27T14:22:53,742815790+02:00 +1751026973.8465822,2025-06-27T14:22:53,845924145+02:00 +1751026974.051906,2025-06-27T14:22:53,949250640+02:00 +1751026974.1551461,2025-06-27T14:22:54,051590258+02:00 +1751026974.2579415,2025-06-27T14:22:54,154654976+02:00 +1751026974.3612678,2025-06-27T14:22:54,257587861+02:00 +1751026974.3613684,2025-06-27T14:22:54,360870774+02:00 +1751026974.5663939,2025-06-27T14:22:54,463107506+02:00 +1751026974.66938,2025-06-27T14:22:54,565792427+02:00 +1751026974.7724414,2025-06-27T14:22:54,668940144+02:00 +1751026974.8764176,2025-06-27T14:22:54,772040769+02:00 +1751026974.8764665,2025-06-27T14:22:54,875859648+02:00 +1751026975.083519,2025-06-27T14:22:54,979727016+02:00 +1751026975.1870997,2025-06-27T14:22:55,083016475+02:00 +1751026975.2899034,2025-06-27T14:22:55,186649983+02:00 +1751026975.393233,2025-06-27T14:22:55,289627336+02:00 +1751026975.3932703,2025-06-27T14:22:55,392771067+02:00 diff --git a/tests/command_execution/.commandlogging/17510269733222053283261616000/void_input-1-err b/tests/command_execution/.commandlogging/17510269733222053283261616000/void_input-1-err new file mode 100644 index 00000000..decb8f79 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510269733222053283261616000/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751026973.4380329,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510269733222053283261616000/void_input-1-out b/tests/command_execution/.commandlogging/17510269733222053283261616000/void_input-1-out new file mode 100644 index 00000000..a7d33e4a --- /dev/null +++ b/tests/command_execution/.commandlogging/17510269733222053283261616000/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751026973.438075,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510270417459227282026739641/after_comand-0-err b/tests/command_execution/.commandlogging/17510270417459227282026739641/after_comand-0-err new file mode 100644 index 00000000..4f240364 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510270417459227282026739641/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751027041.5322587,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0630931854248047 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510270417459227282026739641/after_comand-0-out b/tests/command_execution/.commandlogging/17510270417459227282026739641/after_comand-0-out new file mode 100644 index 00000000..491b24c5 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510270417459227282026739641/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751027041.5317633,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751027041.6326363,2025-06-27T14:24:01,529694084+02:00 +1751027041.7358665,2025-06-27T14:24:01,632380647+02:00 +1751027041.838578,2025-06-27T14:24:01,735715161+02:00 +1751027041.9421084,2025-06-27T14:24:01,838429128+02:00 +1751027041.9421546,2025-06-27T14:24:01,941925536+02:00 +1751027042.1488926,2025-06-27T14:24:02,045716305+02:00 +1751027042.251643,2025-06-27T14:24:02,148692346+02:00 +1751027042.354939,2025-06-27T14:24:02,251497197+02:00 +1751027042.4585419,2025-06-27T14:24:02,354771234+02:00 +1751027042.4585924,2025-06-27T14:24:02,458349483+02:00 +1751027042.6638987,2025-06-27T14:24:02,560819370+02:00 +1751027042.7674053,2025-06-27T14:24:02,663729028+02:00 +1751027042.8709989,2025-06-27T14:24:02,767210120+02:00 +1751027042.974806,2025-06-27T14:24:02,870800425+02:00 +1751027042.9748507,2025-06-27T14:24:02,974627025+02:00 +1751027043.1824415,2025-06-27T14:24:03,078487654+02:00 +1751027043.2863817,2025-06-27T14:24:03,182229495+02:00 +1751027043.3896627,2025-06-27T14:24:03,286197292+02:00 +1751027043.4935606,2025-06-27T14:24:03,389494478+02:00 +1751027043.4936147,2025-06-27T14:24:03,493370686+02:00 +hookend +2.0635528564453125 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510270417459227282026739641/after_initial_input b/tests/command_execution/.commandlogging/17510270417459227282026739641/after_initial_input new file mode 100644 index 00000000..8938014a --- /dev/null +++ b/tests/command_execution/.commandlogging/17510270417459227282026739641/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751027041.5300224,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00023055076599121094 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510270417459227282026739641/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510270417459227282026739641/hook_function_line-0-err new file mode 100644 index 00000000..5aa57aa9 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510270417459227282026739641/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751027041.53501,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510270417459227282026739641/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510270417459227282026739641/hook_function_line-0-out new file mode 100644 index 00000000..d579314a --- /dev/null +++ b/tests/command_execution/.commandlogging/17510270417459227282026739641/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751027041.534649,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751027041.6331468,2025-06-27T14:24:01,529694084+02:00 +1751027041.7360759,2025-06-27T14:24:01,632380647+02:00 +1751027041.8388119,2025-06-27T14:24:01,735715161+02:00 +1751027041.9423912,2025-06-27T14:24:01,838429128+02:00 +1751027041.9424226,2025-06-27T14:24:01,941925536+02:00 +1751027042.1491392,2025-06-27T14:24:02,045716305+02:00 +1751027042.2518759,2025-06-27T14:24:02,148692346+02:00 +1751027042.3551183,2025-06-27T14:24:02,251497197+02:00 +1751027042.4588063,2025-06-27T14:24:02,354771234+02:00 +1751027042.4588578,2025-06-27T14:24:02,458349483+02:00 +1751027042.6641605,2025-06-27T14:24:02,560819370+02:00 +1751027042.7676294,2025-06-27T14:24:02,663729028+02:00 +1751027042.871247,2025-06-27T14:24:02,767210120+02:00 +1751027042.9749417,2025-06-27T14:24:02,870800425+02:00 +1751027042.9749713,2025-06-27T14:24:02,974627025+02:00 +1751027043.1827283,2025-06-27T14:24:03,078487654+02:00 +1751027043.2868073,2025-06-27T14:24:03,182229495+02:00 +1751027043.389805,2025-06-27T14:24:03,286197292+02:00 +1751027043.4938462,2025-06-27T14:24:03,389494478+02:00 +1751027043.4938838,2025-06-27T14:24:03,493370686+02:00 diff --git a/tests/command_execution/.commandlogging/17510270417459227282026739641/void_input-1-err b/tests/command_execution/.commandlogging/17510270417459227282026739641/void_input-1-err new file mode 100644 index 00000000..6cb4580f --- /dev/null +++ b/tests/command_execution/.commandlogging/17510270417459227282026739641/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751027041.5357366,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510270417459227282026739641/void_input-1-out b/tests/command_execution/.commandlogging/17510270417459227282026739641/void_input-1-out new file mode 100644 index 00000000..65719ec4 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510270417459227282026739641/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751027041.53576,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510270583821103139432107070/after_comand-0-err b/tests/command_execution/.commandlogging/17510270583821103139432107070/after_comand-0-err new file mode 100644 index 00000000..336e8ed8 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510270583821103139432107070/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751027058.3195384,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.062514066696167 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510270583821103139432107070/after_comand-0-out b/tests/command_execution/.commandlogging/17510270583821103139432107070/after_comand-0-out new file mode 100644 index 00000000..c49dc3c4 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510270583821103139432107070/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751027058.3192837,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751027058.4215016,2025-06-27T14:24:18,318525677+02:00 +1751027058.5247555,2025-06-27T14:24:18,421324160+02:00 +1751027058.6278973,2025-06-27T14:24:18,524570031+02:00 +1751027058.7317343,2025-06-27T14:24:18,627741421+02:00 +1751027058.7317963,2025-06-27T14:24:18,731535779+02:00 +1751027058.938046,2025-06-27T14:24:18,834933948+02:00 +1751027059.0409124,2025-06-27T14:24:18,937792459+02:00 +1751027059.1444104,2025-06-27T14:24:19,040731514+02:00 +1751027059.2473583,2025-06-27T14:24:19,144187349+02:00 +1751027059.2474082,2025-06-27T14:24:19,247161047+02:00 +1751027059.4525821,2025-06-27T14:24:19,349631768+02:00 +1751027059.5559018,2025-06-27T14:24:19,452403428+02:00 +1751027059.659823,2025-06-27T14:24:19,555722770+02:00 +1751027059.763054,2025-06-27T14:24:19,659644572+02:00 +1751027059.7631006,2025-06-27T14:24:19,762878518+02:00 +1751027059.9698749,2025-06-27T14:24:19,866668527+02:00 +1751027060.0738864,2025-06-27T14:24:19,969688328+02:00 +1751027060.177461,2025-06-27T14:24:20,073686683+02:00 +1751027060.2804055,2025-06-27T14:24:20,177268329+02:00 +1751027060.2804656,2025-06-27T14:24:20,280154048+02:00 +hookend +2.062772512435913 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510270583821103139432107070/after_initial_input b/tests/command_execution/.commandlogging/17510270583821103139432107070/after_initial_input new file mode 100644 index 00000000..3788131b --- /dev/null +++ b/tests/command_execution/.commandlogging/17510270583821103139432107070/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751027058.3179488,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0001857280731201172 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510270583821103139432107070/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510270583821103139432107070/hook_function_line-0-err new file mode 100644 index 00000000..2c97f6f9 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510270583821103139432107070/hook_function_line-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751027058.3210993,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510270583821103139432107070/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510270583821103139432107070/hook_function_line-0-out new file mode 100644 index 00000000..ff09a4c2 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510270583821103139432107070/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751027058.320082,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751027058.421766,2025-06-27T14:24:18,318525677+02:00 +1751027058.525101,2025-06-27T14:24:18,421324160+02:00 +1751027058.6281009,2025-06-27T14:24:18,524570031+02:00 +1751027058.7319841,2025-06-27T14:24:18,627741421+02:00 +1751027058.7320876,2025-06-27T14:24:18,731535779+02:00 +1751027058.938137,2025-06-27T14:24:18,834933948+02:00 +1751027059.041091,2025-06-27T14:24:18,937792459+02:00 +1751027059.144644,2025-06-27T14:24:19,040731514+02:00 +1751027059.2476597,2025-06-27T14:24:19,144187349+02:00 +1751027059.2477272,2025-06-27T14:24:19,247161047+02:00 +1751027059.452803,2025-06-27T14:24:19,349631768+02:00 +1751027059.5562003,2025-06-27T14:24:19,452403428+02:00 +1751027059.660055,2025-06-27T14:24:19,555722770+02:00 +1751027059.7633004,2025-06-27T14:24:19,659644572+02:00 +1751027059.7633321,2025-06-27T14:24:19,762878518+02:00 +1751027059.970148,2025-06-27T14:24:19,866668527+02:00 +1751027060.0741434,2025-06-27T14:24:19,969688328+02:00 +1751027060.1776905,2025-06-27T14:24:20,073686683+02:00 +1751027060.2806554,2025-06-27T14:24:20,177268329+02:00 +1751027060.2806857,2025-06-27T14:24:20,280154048+02:00 diff --git a/tests/command_execution/.commandlogging/17510270583821103139432107070/void_input-1-err b/tests/command_execution/.commandlogging/17510270583821103139432107070/void_input-1-err new file mode 100644 index 00000000..87fd72cb --- /dev/null +++ b/tests/command_execution/.commandlogging/17510270583821103139432107070/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751027058.3212755,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510270583821103139432107070/void_input-1-out b/tests/command_execution/.commandlogging/17510270583821103139432107070/void_input-1-out new file mode 100644 index 00000000..a00e748b --- /dev/null +++ b/tests/command_execution/.commandlogging/17510270583821103139432107070/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751027058.3218272,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510275061222936710834884607/after_comand-0-err b/tests/command_execution/.commandlogging/17510275061222936710834884607/after_comand-0-err new file mode 100644 index 00000000..1c1bd5b2 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275061222936710834884607/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751027506.942605,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.064708709716797 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275061222936710834884607/after_comand-0-out b/tests/command_execution/.commandlogging/17510275061222936710834884607/after_comand-0-out new file mode 100644 index 00000000..02a0b863 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275061222936710834884607/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751027506.9418652,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751027507.0446975,2025-06-27T14:31:46,941582907+02:00 +1751027507.1481874,2025-06-27T14:31:47,044492345+02:00 +1751027507.2517803,2025-06-27T14:31:47,147977061+02:00 +1751027507.356025,2025-06-27T14:31:47,251583042+02:00 +1751027507.3560965,2025-06-27T14:31:47,355803762+02:00 +1751027507.5623498,2025-06-27T14:31:47,459551954+02:00 +1751027507.6647062,2025-06-27T14:31:47,562185850+02:00 +1751027507.768546,2025-06-27T14:31:47,664554933+02:00 +1751027507.871084,2025-06-27T14:31:47,768190663+02:00 +1751027507.8711305,2025-06-27T14:31:47,870954931+02:00 +1751027508.0760953,2025-06-27T14:31:47,973100635+02:00 +1751027508.1799538,2025-06-27T14:31:48,075920773+02:00 +1751027508.2832413,2025-06-27T14:31:48,179757289+02:00 +1751027508.386527,2025-06-27T14:31:48,283051765+02:00 +1751027508.3865757,2025-06-27T14:31:48,386214571+02:00 +1751027508.593484,2025-06-27T14:31:48,489956086+02:00 +1751027508.6972637,2025-06-27T14:31:48,593279292+02:00 +1751027508.801516,2025-06-27T14:31:48,697073515+02:00 +1751027508.9056478,2025-06-27T14:31:48,801306805+02:00 +1751027508.9057205,2025-06-27T14:31:48,905435825+02:00 +hookend +2.065385103225708 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275061222936710834884607/after_initial_input b/tests/command_execution/.commandlogging/17510275061222936710834884607/after_initial_input new file mode 100644 index 00000000..b27c3994 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275061222936710834884607/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751027506.9419842,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00046944618225097656 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-0-out new file mode 100644 index 00000000..55c1b745 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751027506.9430377,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751027507.0449486,2025-06-27T14:31:46,941582907+02:00 +1751027507.1483352,2025-06-27T14:31:47,044492345+02:00 +1751027507.2520301,2025-06-27T14:31:47,147977061+02:00 +1751027507.3562737,2025-06-27T14:31:47,251583042+02:00 +1751027507.356353,2025-06-27T14:31:47,355803762+02:00 +1751027507.5625775,2025-06-27T14:31:47,459551954+02:00 +1751027507.6648753,2025-06-27T14:31:47,562185850+02:00 +1751027507.7688868,2025-06-27T14:31:47,664554933+02:00 +1751027507.8712437,2025-06-27T14:31:47,768190663+02:00 +1751027507.8712628,2025-06-27T14:31:47,870954931+02:00 +1751027508.0765398,2025-06-27T14:31:47,973100635+02:00 +1751027508.1803691,2025-06-27T14:31:48,075920773+02:00 +1751027508.2835166,2025-06-27T14:31:48,179757289+02:00 +1751027508.3870366,2025-06-27T14:31:48,283051765+02:00 +1751027508.38708,2025-06-27T14:31:48,386214571+02:00 +1751027508.5937357,2025-06-27T14:31:48,489956086+02:00 +1751027508.6975582,2025-06-27T14:31:48,593279292+02:00 +1751027508.8018382,2025-06-27T14:31:48,697073515+02:00 +1751027508.9060163,2025-06-27T14:31:48,801306805+02:00 +1751027508.9152443,2025-06-27T14:31:48,905435825+02:00 diff --git a/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-1-err b/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-1-err new file mode 100644 index 00000000..96a66371 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751027506.9450219,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-err diff --git a/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-1-out b/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-1-out new file mode 100644 index 00000000..7d831a4b --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-1-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751027506.9445171,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-out +1751027507.0454032,2025-06-27T14:31:46,941582907+02:00 +1751027507.1486135,2025-06-27T14:31:47,044492345+02:00 +1751027507.252323,2025-06-27T14:31:47,147977061+02:00 +1751027507.356486,2025-06-27T14:31:47,251583042+02:00 +1751027507.3565674,2025-06-27T14:31:47,355803762+02:00 +1751027507.5627587,2025-06-27T14:31:47,459551954+02:00 +1751027507.6649992,2025-06-27T14:31:47,562185850+02:00 +1751027507.7691443,2025-06-27T14:31:47,664554933+02:00 +1751027507.8713987,2025-06-27T14:31:47,768190663+02:00 +1751027507.8714244,2025-06-27T14:31:47,870954931+02:00 +1751027508.0766947,2025-06-27T14:31:47,973100635+02:00 +1751027508.180649,2025-06-27T14:31:48,075920773+02:00 +1751027508.283777,2025-06-27T14:31:48,179757289+02:00 +1751027508.3875127,2025-06-27T14:31:48,283051765+02:00 +1751027508.387548,2025-06-27T14:31:48,386214571+02:00 +1751027508.5939672,2025-06-27T14:31:48,489956086+02:00 +1751027508.6978228,2025-06-27T14:31:48,593279292+02:00 +1751027508.8020196,2025-06-27T14:31:48,697073515+02:00 +1751027508.9063063,2025-06-27T14:31:48,801306805+02:00 +1751027508.9154587,2025-06-27T14:31:48,905435825+02:00 diff --git a/tests/command_execution/.commandlogging/17510275061222936710834884607/void_input-2-err b/tests/command_execution/.commandlogging/17510275061222936710834884607/void_input-2-err new file mode 100644 index 00000000..7c05f624 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275061222936710834884607/void_input-2-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751027506.945699,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-err diff --git a/tests/command_execution/.commandlogging/17510275061222936710834884607/void_input-2-out b/tests/command_execution/.commandlogging/17510275061222936710834884607/void_input-2-out new file mode 100644 index 00000000..bfb03b17 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275061222936710834884607/void_input-2-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751027506.9454944,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-out diff --git a/tests/command_execution/.commandlogging/17510275194239943051475391385/after_comand-0-err b/tests/command_execution/.commandlogging/17510275194239943051475391385/after_comand-0-err new file mode 100644 index 00000000..14218ee1 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275194239943051475391385/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751027519.1633544,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0623366832733154 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275194239943051475391385/after_comand-0-out b/tests/command_execution/.commandlogging/17510275194239943051475391385/after_comand-0-out new file mode 100644 index 00000000..1630718b --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275194239943051475391385/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751027519.1628342,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751027519.2642198,2025-06-27T14:31:59,160631128+02:00 +1751027519.3676698,2025-06-27T14:31:59,263975607+02:00 +1751027519.47127,2025-06-27T14:31:59,367487571+02:00 +1751027519.5746195,2025-06-27T14:31:59,471065771+02:00 +1751027519.574665,2025-06-27T14:31:59,574388283+02:00 +1751027519.7811391,2025-06-27T14:31:59,678238923+02:00 +1751027519.8837743,2025-06-27T14:31:59,780998219+02:00 +1751027519.9870965,2025-06-27T14:31:59,883581067+02:00 +1751027520.0900686,2025-06-27T14:31:59,986927252+02:00 +1751027520.0901148,2025-06-27T14:32:00,089894835+02:00 +1751027520.2955587,2025-06-27T14:32:00,192014786+02:00 +1751027520.399507,2025-06-27T14:32:00,295359090+02:00 +1751027520.502995,2025-06-27T14:32:00,399338489+02:00 +1751027520.6065264,2025-06-27T14:32:00,502814762+02:00 +1751027520.6065776,2025-06-27T14:32:00,606340591+02:00 +1751027520.8136861,2025-06-27T14:32:00,710001696+02:00 +1751027520.9169822,2025-06-27T14:32:00,813516334+02:00 +1751027521.0208392,2025-06-27T14:32:00,916788187+02:00 +1751027521.124161,2025-06-27T14:32:01,020640799+02:00 +1751027521.1242251,2025-06-27T14:32:01,123991407+02:00 +hookend +2.062979221343994 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275194239943051475391385/after_initial_input b/tests/command_execution/.commandlogging/17510275194239943051475391385/after_initial_input new file mode 100644 index 00000000..5f1d36ca --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275194239943051475391385/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751027519.1615179,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0003788471221923828 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275194239943051475391385/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510275194239943051475391385/hook_function_line-0-out new file mode 100644 index 00000000..56e74031 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275194239943051475391385/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751027519.164638,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751027519.2646244,2025-06-27T14:31:59,160631128+02:00 +1751027519.367805,2025-06-27T14:31:59,263975607+02:00 +1751027519.4715273,2025-06-27T14:31:59,367487571+02:00 +1751027519.5749211,2025-06-27T14:31:59,471065771+02:00 +1751027519.5749528,2025-06-27T14:31:59,574388283+02:00 +1751027519.7813854,2025-06-27T14:31:59,678238923+02:00 +1751027519.884076,2025-06-27T14:31:59,780998219+02:00 +1751027519.987344,2025-06-27T14:31:59,883581067+02:00 +1751027520.0903444,2025-06-27T14:31:59,986927252+02:00 +1751027520.090396,2025-06-27T14:32:00,089894835+02:00 +1751027520.2958393,2025-06-27T14:32:00,192014786+02:00 +1751027520.3997152,2025-06-27T14:32:00,295359090+02:00 +1751027520.5032222,2025-06-27T14:32:00,399338489+02:00 +1751027520.6067622,2025-06-27T14:32:00,502814762+02:00 +1751027520.606811,2025-06-27T14:32:00,606340591+02:00 +1751027520.813941,2025-06-27T14:32:00,710001696+02:00 +1751027520.917161,2025-06-27T14:32:00,813516334+02:00 +1751027521.0211284,2025-06-27T14:32:00,916788187+02:00 +1751027521.1242857,2025-06-27T14:32:01,020640799+02:00 +1751027521.1243317,2025-06-27T14:32:01,123991407+02:00 diff --git a/tests/command_execution/.commandlogging/17510275194239943051475391385/void_input-1-err b/tests/command_execution/.commandlogging/17510275194239943051475391385/void_input-1-err new file mode 100644 index 00000000..2411496c --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275194239943051475391385/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751027519.1660333,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510275194239943051475391385/void_input-1-out b/tests/command_execution/.commandlogging/17510275194239943051475391385/void_input-1-out new file mode 100644 index 00000000..e738ddac --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275194239943051475391385/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751027519.1657507,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510275384121131127726226779/after_comand-0-err b/tests/command_execution/.commandlogging/17510275384121131127726226779/after_comand-0-err new file mode 100644 index 00000000..d570690b --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275384121131127726226779/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751027538.859614,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0649213790893555 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275384121131127726226779/after_comand-0-out b/tests/command_execution/.commandlogging/17510275384121131127726226779/after_comand-0-out new file mode 100644 index 00000000..8856616b --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275384121131127726226779/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751027538.8595843,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751027538.9621632,2025-06-27T14:32:18,859157324+02:00 +1751027539.0656312,2025-06-27T14:32:18,961964252+02:00 +1751027539.1689672,2025-06-27T14:32:19,065489116+02:00 +1751027539.2722592,2025-06-27T14:32:19,168797306+02:00 +1751027539.2723088,2025-06-27T14:32:19,272085678+02:00 +1751027539.4782608,2025-06-27T14:32:19,375449955+02:00 +1751027539.5816872,2025-06-27T14:32:19,478115555+02:00 +1751027539.6851306,2025-06-27T14:32:19,581508692+02:00 +1751027539.7884567,2025-06-27T14:32:19,684939691+02:00 +1751027539.7885094,2025-06-27T14:32:19,788272642+02:00 +1751027539.9937592,2025-06-27T14:32:19,890646648+02:00 +1751027540.0969167,2025-06-27T14:32:19,993543878+02:00 +1751027540.2005332,2025-06-27T14:32:20,096768594+02:00 +1751027540.3047059,2025-06-27T14:32:20,200339734+02:00 +1751027540.3047485,2025-06-27T14:32:20,304515880+02:00 +1751027540.511829,2025-06-27T14:32:20,408094090+02:00 +1751027540.6150541,2025-06-27T14:32:20,511665970+02:00 +1751027540.7191293,2025-06-27T14:32:20,614898050+02:00 +1751027540.822975,2025-06-27T14:32:20,718854777+02:00 +1751027540.8230286,2025-06-27T14:32:20,822792211+02:00 +hookend +2.0649161338806152 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275384121131127726226779/after_initial_input b/tests/command_execution/.commandlogging/17510275384121131127726226779/after_initial_input new file mode 100644 index 00000000..a50720d1 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275384121131127726226779/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751027538.8587437,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0003275871276855469 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275384121131127726226779/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510275384121131127726226779/hook_function_line-0-out new file mode 100644 index 00000000..d399e2b4 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275384121131127726226779/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751027538.8602257,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751027538.9624596,2025-06-27T14:32:18,859157324+02:00 +1751027539.0658708,2025-06-27T14:32:18,961964252+02:00 +1751027539.1693075,2025-06-27T14:32:19,065489116+02:00 +1751027539.272588,2025-06-27T14:32:19,168797306+02:00 +1751027539.2726274,2025-06-27T14:32:19,272085678+02:00 +1751027539.4785419,2025-06-27T14:32:19,375449955+02:00 +1751027539.5818844,2025-06-27T14:32:19,478115555+02:00 +1751027539.6854017,2025-06-27T14:32:19,581508692+02:00 +1751027539.788664,2025-06-27T14:32:19,684939691+02:00 +1751027539.7886963,2025-06-27T14:32:19,788272642+02:00 +1751027539.994058,2025-06-27T14:32:19,890646648+02:00 +1751027540.0971444,2025-06-27T14:32:19,993543878+02:00 +1751027540.2008893,2025-06-27T14:32:20,096768594+02:00 +1751027540.3050053,2025-06-27T14:32:20,200339734+02:00 +1751027540.3050444,2025-06-27T14:32:20,304515880+02:00 +1751027540.5121455,2025-06-27T14:32:20,408094090+02:00 +1751027540.6152802,2025-06-27T14:32:20,511665970+02:00 +1751027540.7194235,2025-06-27T14:32:20,614898050+02:00 +1751027540.8232443,2025-06-27T14:32:20,718854777+02:00 +1751027540.8233364,2025-06-27T14:32:20,822792211+02:00 diff --git a/tests/command_execution/.commandlogging/17510275384121131127726226779/void_input-1-err b/tests/command_execution/.commandlogging/17510275384121131127726226779/void_input-1-err new file mode 100644 index 00000000..03811265 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275384121131127726226779/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751027538.8619947,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510275384121131127726226779/void_input-1-out b/tests/command_execution/.commandlogging/17510275384121131127726226779/void_input-1-out new file mode 100644 index 00000000..72f93f00 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510275384121131127726226779/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751027538.8612459,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/1751027691560915493581199542/after_comand-0-err b/tests/command_execution/.commandlogging/1751027691560915493581199542/after_comand-0-err new file mode 100644 index 00000000..10320a19 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751027691560915493581199542/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751027691.1558588,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.067044496536255 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751027691560915493581199542/after_comand-0-out b/tests/command_execution/.commandlogging/1751027691560915493581199542/after_comand-0-out new file mode 100644 index 00000000..0e86e862 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751027691560915493581199542/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751027691.1556156,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751027691.258655,2025-06-27T14:34:51,155207415+02:00 +1751027691.3625324,2025-06-27T14:34:51,258453726+02:00 +1751027691.4660287,2025-06-27T14:34:51,362347699+02:00 +1751027691.569702,2025-06-27T14:34:51,465844907+02:00 +1751027691.5697548,2025-06-27T14:34:51,569518745+02:00 +1751027691.7759628,2025-06-27T14:34:51,673053702+02:00 +1751027691.8786657,2025-06-27T14:34:51,775776438+02:00 +1751027691.9821014,2025-06-27T14:34:51,878522578+02:00 +1751027692.0851471,2025-06-27T14:34:51,981920566+02:00 +1751027692.0852036,2025-06-27T14:34:52,084991317+02:00 +1751027692.2920282,2025-06-27T14:34:52,188048828+02:00 +1751027692.3959057,2025-06-27T14:34:52,291853631+02:00 +1751027692.5000308,2025-06-27T14:34:52,395690145+02:00 +1751027692.6040866,2025-06-27T14:34:52,499836229+02:00 +1751027692.6041305,2025-06-27T14:34:52,603921259+02:00 +1751027692.8100526,2025-06-27T14:34:52,706348747+02:00 +1751027692.9135888,2025-06-27T14:34:52,809859769+02:00 +1751027693.0169997,2025-06-27T14:34:52,913396615+02:00 +1751027693.120955,2025-06-27T14:34:53,016813256+02:00 +1751027693.1210072,2025-06-27T14:34:53,120742620+02:00 +hookend +2.0673129558563232 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751027691560915493581199542/after_initial_input b/tests/command_execution/.commandlogging/1751027691560915493581199542/after_initial_input new file mode 100644 index 00000000..a651771f --- /dev/null +++ b/tests/command_execution/.commandlogging/1751027691560915493581199542/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751027691.1550772,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0004611015319824219 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751027691560915493581199542/hook_function_line-0-out b/tests/command_execution/.commandlogging/1751027691560915493581199542/hook_function_line-0-out new file mode 100644 index 00000000..b09e4e4c --- /dev/null +++ b/tests/command_execution/.commandlogging/1751027691560915493581199542/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751027691.1567945,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751027691.258912,2025-06-27T14:34:51,155207415+02:00 +1751027691.3627472,2025-06-27T14:34:51,258453726+02:00 +1751027691.4663053,2025-06-27T14:34:51,362347699+02:00 +1751027691.569929,2025-06-27T14:34:51,465844907+02:00 +1751027691.5700119,2025-06-27T14:34:51,569518745+02:00 +1751027691.7762089,2025-06-27T14:34:51,673053702+02:00 +1751027691.8789184,2025-06-27T14:34:51,775776438+02:00 +1751027691.982794,2025-06-27T14:34:51,878522578+02:00 +1751027692.0853748,2025-06-27T14:34:51,981920566+02:00 +1751027692.0854056,2025-06-27T14:34:52,084991317+02:00 +1751027692.2922747,2025-06-27T14:34:52,188048828+02:00 +1751027692.396314,2025-06-27T14:34:52,291853631+02:00 +1751027692.5002923,2025-06-27T14:34:52,395690145+02:00 +1751027692.604367,2025-06-27T14:34:52,499836229+02:00 +1751027692.6043973,2025-06-27T14:34:52,603921259+02:00 +1751027692.8102915,2025-06-27T14:34:52,706348747+02:00 +1751027692.9137886,2025-06-27T14:34:52,809859769+02:00 +1751027693.017307,2025-06-27T14:34:52,913396615+02:00 +1751027693.1212416,2025-06-27T14:34:53,016813256+02:00 +1751027693.1212852,2025-06-27T14:34:53,120742620+02:00 diff --git a/tests/command_execution/.commandlogging/1751027691560915493581199542/void_input-1-err b/tests/command_execution/.commandlogging/1751027691560915493581199542/void_input-1-err new file mode 100644 index 00000000..13cedafb --- /dev/null +++ b/tests/command_execution/.commandlogging/1751027691560915493581199542/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751027691.1577911,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/1751027691560915493581199542/void_input-1-out b/tests/command_execution/.commandlogging/1751027691560915493581199542/void_input-1-out new file mode 100644 index 00000000..86e4f821 --- /dev/null +++ b/tests/command_execution/.commandlogging/1751027691560915493581199542/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751027691.1571338,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510277949065025034801274345/after_comand-0-err b/tests/command_execution/.commandlogging/17510277949065025034801274345/after_comand-0-err new file mode 100644 index 00000000..743989f8 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510277949065025034801274345/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751027794.0847795,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0646705627441406 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510277949065025034801274345/after_comand-0-out b/tests/command_execution/.commandlogging/17510277949065025034801274345/after_comand-0-out new file mode 100644 index 00000000..6377c6c5 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510277949065025034801274345/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751027794.0842621,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751027794.1847036,2025-06-27T14:36:34,082372620+02:00 +1751027794.288055,2025-06-27T14:36:34,184505794+02:00 +1751027794.3908765,2025-06-27T14:36:34,287892293+02:00 +1751027794.4939003,2025-06-27T14:36:34,390729011+02:00 +1751027794.4939537,2025-06-27T14:36:34,493732634+02:00 +1751027794.7002513,2025-06-27T14:36:34,597408063+02:00 +1751027794.8033803,2025-06-27T14:36:34,700127867+02:00 +1751027794.9069264,2025-06-27T14:36:34,803199860+02:00 +1751027795.0109146,2025-06-27T14:36:34,906730995+02:00 +1751027795.0109713,2025-06-27T14:36:35,010739377+02:00 +1751027795.2171032,2025-06-27T14:36:35,112948913+02:00 +1751027795.3213484,2025-06-27T14:36:35,216911526+02:00 +1751027795.4256153,2025-06-27T14:36:35,321138048+02:00 +1751027795.52891,2025-06-27T14:36:35,425391022+02:00 +1751027795.528954,2025-06-27T14:36:35,528735231+02:00 +1751027795.7364416,2025-06-27T14:36:35,632672839+02:00 +1751027795.8406284,2025-06-27T14:36:35,736246271+02:00 +1751027795.943926,2025-06-27T14:36:35,840447757+02:00 +1751027796.0479188,2025-06-27T14:36:35,943740377+02:00 +1751027796.047977,2025-06-27T14:36:36,047709151+02:00 +hookend +2.065187931060791 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510277949065025034801274345/after_initial_input b/tests/command_execution/.commandlogging/17510277949065025034801274345/after_initial_input new file mode 100644 index 00000000..cf343503 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510277949065025034801274345/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751027794.082958,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0002579689025878906 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510277949065025034801274345/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510277949065025034801274345/hook_function_line-0-out new file mode 100644 index 00000000..db26376c --- /dev/null +++ b/tests/command_execution/.commandlogging/17510277949065025034801274345/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751027794.086002,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751027794.1848924,2025-06-27T14:36:34,082372620+02:00 +1751027794.288276,2025-06-27T14:36:34,184505794+02:00 +1751027794.391155,2025-06-27T14:36:34,287892293+02:00 +1751027794.4941566,2025-06-27T14:36:34,390729011+02:00 +1751027794.4943435,2025-06-27T14:36:34,493732634+02:00 +1751027794.700506,2025-06-27T14:36:34,597408063+02:00 +1751027794.8036587,2025-06-27T14:36:34,700127867+02:00 +1751027794.9072573,2025-06-27T14:36:34,803199860+02:00 +1751027795.0111506,2025-06-27T14:36:34,906730995+02:00 +1751027795.0112662,2025-06-27T14:36:35,010739377+02:00 +1751027795.2173874,2025-06-27T14:36:35,112948913+02:00 +1751027795.3215919,2025-06-27T14:36:35,216911526+02:00 +1751027795.4258382,2025-06-27T14:36:35,321138048+02:00 +1751027795.5291355,2025-06-27T14:36:35,425391022+02:00 +1751027795.5291758,2025-06-27T14:36:35,528735231+02:00 +1751027795.736793,2025-06-27T14:36:35,632672839+02:00 +1751027795.8408322,2025-06-27T14:36:35,736246271+02:00 +1751027795.944139,2025-06-27T14:36:35,840447757+02:00 +1751027796.0481296,2025-06-27T14:36:35,943740377+02:00 +1751027796.048227,2025-06-27T14:36:36,047709151+02:00 diff --git a/tests/command_execution/.commandlogging/17510277949065025034801274345/void_input-1-err b/tests/command_execution/.commandlogging/17510277949065025034801274345/void_input-1-err new file mode 100644 index 00000000..08ac768e --- /dev/null +++ b/tests/command_execution/.commandlogging/17510277949065025034801274345/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751027794.0878375,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510277949065025034801274345/void_input-1-out b/tests/command_execution/.commandlogging/17510277949065025034801274345/void_input-1-out new file mode 100644 index 00000000..00d5b176 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510277949065025034801274345/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751027794.087163,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510278265146615098218632368/after_comand-0-err b/tests/command_execution/.commandlogging/17510278265146615098218632368/after_comand-0-err new file mode 100644 index 00000000..09e523c2 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278265146615098218632368/after_comand-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751027826.7208884,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err diff --git a/tests/command_execution/.commandlogging/17510278265146615098218632368/after_comand-0-out b/tests/command_execution/.commandlogging/17510278265146615098218632368/after_comand-0-out new file mode 100644 index 00000000..bae47912 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278265146615098218632368/after_comand-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751027826.7205858,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751027826.8237267,2025-06-27T14:37:06,720236834+02:00 +1751027826.927496,2025-06-27T14:37:06,823526661+02:00 +1751027827.0313845,2025-06-27T14:37:06,927315096+02:00 +1751027827.1351886,2025-06-27T14:37:07,031128485+02:00 +1751027827.1352482,2025-06-27T14:37:07,134996830+02:00 +1751027827.3411794,2025-06-27T14:37:07,238361904+02:00 +1751027827.443986,2025-06-27T14:37:07,341004490+02:00 +1751027827.5469484,2025-06-27T14:37:07,443826163+02:00 +1751027827.6507676,2025-06-27T14:37:07,546807080+02:00 +1751027827.6508217,2025-06-27T14:37:07,650570304+02:00 +1751027827.8560796,2025-06-27T14:37:07,752935703+02:00 +1751027827.95949,2025-06-27T14:37:07,855896078+02:00 +1751027828.0624208,2025-06-27T14:37:07,959322512+02:00 +1751027828.1650252,2025-06-27T14:37:08,062222561+02:00 +1751027828.1650703,2025-06-27T14:37:08,164893144+02:00 +1751027828.372347,2025-06-27T14:37:08,268673517+02:00 +1751027828.4762185,2025-06-27T14:37:08,372123085+02:00 +1751027828.579877,2025-06-27T14:37:08,475974147+02:00 +1751027828.6839285,2025-06-27T14:37:08,579696584+02:00 +1751027828.6839814,2025-06-27T14:37:08,683711422+02:00 diff --git a/tests/command_execution/.commandlogging/17510278265146615098218632368/after_initial_input b/tests/command_execution/.commandlogging/17510278265146615098218632368/after_initial_input new file mode 100644 index 00000000..a1b1a9eb --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278265146615098218632368/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751027826.7200153,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0003426074981689453 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510278265146615098218632368/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510278265146615098218632368/hook_function_line-0-out new file mode 100644 index 00000000..f44f813c --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278265146615098218632368/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751027826.721598,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751027826.823983,2025-06-27T14:37:06,720236834+02:00 +1751027826.927764,2025-06-27T14:37:06,823526661+02:00 +1751027827.0316389,2025-06-27T14:37:06,927315096+02:00 +1751027827.1354342,2025-06-27T14:37:07,031128485+02:00 +1751027827.1354973,2025-06-27T14:37:07,134996830+02:00 +1751027827.3414023,2025-06-27T14:37:07,238361904+02:00 +1751027827.4442039,2025-06-27T14:37:07,341004490+02:00 +1751027827.5471346,2025-06-27T14:37:07,443826163+02:00 +1751027827.6509244,2025-06-27T14:37:07,546807080+02:00 +1751027827.6509638,2025-06-27T14:37:07,650570304+02:00 +1751027827.8562837,2025-06-27T14:37:07,752935703+02:00 +1751027827.9597125,2025-06-27T14:37:07,855896078+02:00 +1751027828.0626686,2025-06-27T14:37:07,959322512+02:00 +1751027828.1652198,2025-06-27T14:37:08,062222561+02:00 +1751027828.1652749,2025-06-27T14:37:08,164893144+02:00 +1751027828.372582,2025-06-27T14:37:08,268673517+02:00 +1751027828.4764802,2025-06-27T14:37:08,372123085+02:00 +1751027828.5801644,2025-06-27T14:37:08,475974147+02:00 +1751027828.68419,2025-06-27T14:37:08,579696584+02:00 +1751027828.6842499,2025-06-27T14:37:08,683711422+02:00 diff --git a/tests/command_execution/.commandlogging/17510278265146615098218632368/void_input-1-err b/tests/command_execution/.commandlogging/17510278265146615098218632368/void_input-1-err new file mode 100644 index 00000000..a7b439a7 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278265146615098218632368/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751027826.7224727,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510278265146615098218632368/void_input-1-out b/tests/command_execution/.commandlogging/17510278265146615098218632368/void_input-1-out new file mode 100644 index 00000000..37d0bd03 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278265146615098218632368/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751027826.722177,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510278435495815789182149599/after_comand-0-err b/tests/command_execution/.commandlogging/17510278435495815789182149599/after_comand-0-err new file mode 100644 index 00000000..8c51163c --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278435495815789182149599/after_comand-0-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751027843.9027493,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err diff --git a/tests/command_execution/.commandlogging/17510278435495815789182149599/after_comand-0-out b/tests/command_execution/.commandlogging/17510278435495815789182149599/after_comand-0-out new file mode 100644 index 00000000..8521324b --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278435495815789182149599/after_comand-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751027843.9020836,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751027844.0047367,2025-06-27T14:37:23,901306422+02:00 +1751027844.1081464,2025-06-27T14:37:24,004515408+02:00 +1751027844.2114906,2025-06-27T14:37:24,107951769+02:00 +1751027844.3151512,2025-06-27T14:37:24,211160640+02:00 +1751027844.3152246,2025-06-27T14:37:24,314965783+02:00 +1751027844.521822,2025-06-27T14:37:24,418607584+02:00 +1751027844.6240804,2025-06-27T14:37:24,521666206+02:00 +1751027844.7274442,2025-06-27T14:37:24,623961699+02:00 +1751027844.8306904,2025-06-27T14:37:24,727268731+02:00 +1751027844.8307436,2025-06-27T14:37:24,830494335+02:00 +1751027845.0379305,2025-06-27T14:37:24,934096788+02:00 +1751027845.1416693,2025-06-27T14:37:25,037750822+02:00 +1751027845.245069,2025-06-27T14:37:25,141484719+02:00 +1751027845.3479433,2025-06-27T14:37:25,244866740+02:00 +1751027845.3479896,2025-06-27T14:37:25,347785862+02:00 +1751027845.5540428,2025-06-27T14:37:25,451342047+02:00 +1751027845.6568568,2025-06-27T14:37:25,553844498+02:00 +1751027845.7605944,2025-06-27T14:37:25,656678888+02:00 +1751027845.8633997,2025-06-27T14:37:25,760403657+02:00 +1751027845.8634446,2025-06-27T14:37:25,863155536+02:00 diff --git a/tests/command_execution/.commandlogging/17510278435495815789182149599/after_initial_input b/tests/command_execution/.commandlogging/17510278435495815789182149599/after_initial_input new file mode 100644 index 00000000..3436673c --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278435495815789182149599/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751027843.9018168,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00038743019104003906 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510278435495815789182149599/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510278435495815789182149599/hook_function_line-0-out new file mode 100644 index 00000000..7a4b865b --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278435495815789182149599/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751027843.9036984,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751027844.0050595,2025-06-27T14:37:23,901306422+02:00 +1751027844.1083417,2025-06-27T14:37:24,004515408+02:00 +1751027844.2117352,2025-06-27T14:37:24,107951769+02:00 +1751027844.315421,2025-06-27T14:37:24,211160640+02:00 +1751027844.315461,2025-06-27T14:37:24,314965783+02:00 +1751027844.521969,2025-06-27T14:37:24,418607584+02:00 +1751027844.6242101,2025-06-27T14:37:24,521666206+02:00 +1751027844.7276583,2025-06-27T14:37:24,623961699+02:00 +1751027844.8309922,2025-06-27T14:37:24,727268731+02:00 +1751027844.8310318,2025-06-27T14:37:24,830494335+02:00 +1751027845.0382562,2025-06-27T14:37:24,934096788+02:00 +1751027845.1419075,2025-06-27T14:37:25,037750822+02:00 +1751027845.2453485,2025-06-27T14:37:25,141484719+02:00 +1751027845.3482375,2025-06-27T14:37:25,244866740+02:00 +1751027845.3482704,2025-06-27T14:37:25,347785862+02:00 +1751027845.5543056,2025-06-27T14:37:25,451342047+02:00 +1751027845.6572275,2025-06-27T14:37:25,553844498+02:00 +1751027845.76093,2025-06-27T14:37:25,656678888+02:00 +1751027845.863599,2025-06-27T14:37:25,760403657+02:00 +1751027845.8636298,2025-06-27T14:37:25,863155536+02:00 diff --git a/tests/command_execution/.commandlogging/17510278435495815789182149599/void_input-1-err b/tests/command_execution/.commandlogging/17510278435495815789182149599/void_input-1-err new file mode 100644 index 00000000..2f9cbcb8 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278435495815789182149599/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751027843.9050114,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510278435495815789182149599/void_input-1-out b/tests/command_execution/.commandlogging/17510278435495815789182149599/void_input-1-out new file mode 100644 index 00000000..475fd851 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278435495815789182149599/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751027843.904436,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510278954603509299118523721/after_comand-0-err b/tests/command_execution/.commandlogging/17510278954603509299118523721/after_comand-0-err new file mode 100644 index 00000000..f57e6040 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278954603509299118523721/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751027895.3761578,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0648059844970703 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510278954603509299118523721/after_comand-0-out b/tests/command_execution/.commandlogging/17510278954603509299118523721/after_comand-0-out new file mode 100644 index 00000000..9ff9e562 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278954603509299118523721/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751027895.375819,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751027895.4786901,2025-06-27T14:38:15,375107585+02:00 +1751027895.581912,2025-06-27T14:38:15,478475391+02:00 +1751027895.6853068,2025-06-27T14:38:15,581714915+02:00 +1751027895.788518,2025-06-27T14:38:15,685111407+02:00 +1751027895.7885644,2025-06-27T14:38:15,788220858+02:00 +1751027895.9945042,2025-06-27T14:38:15,891800613+02:00 +1751027896.0973754,2025-06-27T14:38:15,994425861+02:00 +1751027896.2008915,2025-06-27T14:38:16,097277893+02:00 +1751027896.3041153,2025-06-27T14:38:16,200713290+02:00 +1751027896.3041801,2025-06-27T14:38:16,303931476+02:00 +1751027896.509592,2025-06-27T14:38:16,406453978+02:00 +1751027896.6132383,2025-06-27T14:38:16,509354851+02:00 +1751027896.7168384,2025-06-27T14:38:16,613028848+02:00 +1751027896.8208504,2025-06-27T14:38:16,716646237+02:00 +1751027896.820898,2025-06-27T14:38:16,820653244+02:00 +1751027897.0279105,2025-06-27T14:38:16,924526499+02:00 +1751027897.1311066,2025-06-27T14:38:17,027750295+02:00 +1751027897.235127,2025-06-27T14:38:17,130937205+02:00 +1751027897.3388312,2025-06-27T14:38:17,234946843+02:00 +1751027897.3388808,2025-06-27T14:38:17,338654914+02:00 +hookend +2.065183162689209 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510278954603509299118523721/after_initial_input b/tests/command_execution/.commandlogging/17510278954603509299118523721/after_initial_input new file mode 100644 index 00000000..f5c4ca58 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278954603509299118523721/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751027895.3752325,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0004165172576904297 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510278954603509299118523721/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510278954603509299118523721/hook_function_line-0-out new file mode 100644 index 00000000..21dc9419 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278954603509299118523721/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751027895.3762326,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751027895.4788597,2025-06-27T14:38:15,375107585+02:00 +1751027895.5821257,2025-06-27T14:38:15,478475391+02:00 +1751027895.6855793,2025-06-27T14:38:15,581714915+02:00 +1751027895.7887542,2025-06-27T14:38:15,685111407+02:00 +1751027895.7888534,2025-06-27T14:38:15,788220858+02:00 +1751027895.9946027,2025-06-27T14:38:15,891800613+02:00 +1751027896.0975595,2025-06-27T14:38:15,994425861+02:00 +1751027896.2011285,2025-06-27T14:38:16,097277893+02:00 +1751027896.304468,2025-06-27T14:38:16,200713290+02:00 +1751027896.3046904,2025-06-27T14:38:16,303931476+02:00 +1751027896.5098484,2025-06-27T14:38:16,406453978+02:00 +1751027896.6135275,2025-06-27T14:38:16,509354851+02:00 +1751027896.7169847,2025-06-27T14:38:16,613028848+02:00 +1751027896.821085,2025-06-27T14:38:16,716646237+02:00 +1751027896.821116,2025-06-27T14:38:16,820653244+02:00 +1751027897.0282135,2025-06-27T14:38:16,924526499+02:00 +1751027897.1312463,2025-06-27T14:38:17,027750295+02:00 +1751027897.235316,2025-06-27T14:38:17,130937205+02:00 +1751027897.339278,2025-06-27T14:38:17,234946843+02:00 +1751027897.3394737,2025-06-27T14:38:17,338654914+02:00 diff --git a/tests/command_execution/.commandlogging/17510278954603509299118523721/void_input-1-err b/tests/command_execution/.commandlogging/17510278954603509299118523721/void_input-1-err new file mode 100644 index 00000000..e7f58d3a --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278954603509299118523721/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751027895.3776515,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510278954603509299118523721/void_input-1-out b/tests/command_execution/.commandlogging/17510278954603509299118523721/void_input-1-out new file mode 100644 index 00000000..09b906d2 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510278954603509299118523721/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751027895.3777616,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510279111824369709155032513/after_comand-0-err b/tests/command_execution/.commandlogging/17510279111824369709155032513/after_comand-0-err new file mode 100644 index 00000000..6cd5d027 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510279111824369709155032513/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751027911.9684753,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0546650886535645 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510279111824369709155032513/after_comand-0-out b/tests/command_execution/.commandlogging/17510279111824369709155032513/after_comand-0-out new file mode 100644 index 00000000..4f732ee4 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510279111824369709155032513/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751027911.9676542,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751027912.0695138,2025-06-27T14:38:31,966516362+02:00 +1751027912.172989,2025-06-27T14:38:32,069331463+02:00 +1751027912.2769208,2025-06-27T14:38:32,172804112+02:00 +1751027912.3800113,2025-06-27T14:38:32,276743977+02:00 +1751027912.3800614,2025-06-27T14:38:32,379832639+02:00 +1751027912.5866678,2025-06-27T14:38:32,483555865+02:00 +1751027912.6901581,2025-06-27T14:38:32,586468029+02:00 +1751027912.7937033,2025-06-27T14:38:32,689977992+02:00 +1751027912.8968987,2025-06-27T14:38:32,793516327+02:00 +1751027912.896952,2025-06-27T14:38:32,896726581+02:00 +1751027913.1013188,2025-06-27T14:38:32,999067946+02:00 +1751027913.2037365,2025-06-27T14:38:33,101015982+02:00 +1751027913.3063114,2025-06-27T14:38:33,203600577+02:00 +1751027913.4086206,2025-06-27T14:38:33,306136526+02:00 +1751027913.4086547,2025-06-27T14:38:33,408452806+02:00 +1751027913.6136634,2025-06-27T14:38:33,511008885+02:00 +1751027913.716431,2025-06-27T14:38:33,613502532+02:00 +1751027913.8187923,2025-06-27T14:38:33,716152716+02:00 +1751027913.9216251,2025-06-27T14:38:33,818714633+02:00 +1751027913.9216738,2025-06-27T14:38:33,921433452+02:00 +hookend +2.0554254055023193 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510279111824369709155032513/after_initial_input b/tests/command_execution/.commandlogging/17510279111824369709155032513/after_initial_input new file mode 100644 index 00000000..7c091257 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510279111824369709155032513/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751027911.967417,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00036835670471191406 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510279111824369709155032513/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510279111824369709155032513/hook_function_line-0-out new file mode 100644 index 00000000..b71e5362 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510279111824369709155032513/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751027911.9689515,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751027912.069678,2025-06-27T14:38:31,966516362+02:00 +1751027912.173217,2025-06-27T14:38:32,069331463+02:00 +1751027912.2772174,2025-06-27T14:38:32,172804112+02:00 +1751027912.3802624,2025-06-27T14:38:32,276743977+02:00 +1751027912.3803513,2025-06-27T14:38:32,379832639+02:00 +1751027912.5869806,2025-06-27T14:38:32,483555865+02:00 +1751027912.6904895,2025-06-27T14:38:32,586468029+02:00 +1751027912.7939513,2025-06-27T14:38:32,689977992+02:00 +1751027912.8972654,2025-06-27T14:38:32,793516327+02:00 +1751027912.8973067,2025-06-27T14:38:32,896726581+02:00 +1751027913.1014762,2025-06-27T14:38:32,999067946+02:00 +1751027913.2039979,2025-06-27T14:38:33,101015982+02:00 +1751027913.3065655,2025-06-27T14:38:33,203600577+02:00 +1751027913.4089284,2025-06-27T14:38:33,306136526+02:00 +1751027913.4089782,2025-06-27T14:38:33,408452806+02:00 +1751027913.613863,2025-06-27T14:38:33,511008885+02:00 +1751027913.71662,2025-06-27T14:38:33,613502532+02:00 +1751027913.8189645,2025-06-27T14:38:33,716152716+02:00 +1751027913.9219081,2025-06-27T14:38:33,818714633+02:00 +1751027913.9219496,2025-06-27T14:38:33,921433452+02:00 diff --git a/tests/command_execution/.commandlogging/17510279111824369709155032513/void_input-1-err b/tests/command_execution/.commandlogging/17510279111824369709155032513/void_input-1-err new file mode 100644 index 00000000..cf464373 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510279111824369709155032513/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751027911.9710424,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510279111824369709155032513/void_input-1-out b/tests/command_execution/.commandlogging/17510279111824369709155032513/void_input-1-out new file mode 100644 index 00000000..a8820520 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510279111824369709155032513/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751027911.9703016,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510281386106517343193566288/after_comand-0-err b/tests/command_execution/.commandlogging/17510281386106517343193566288/after_comand-0-err new file mode 100644 index 00000000..221a2e6d --- /dev/null +++ b/tests/command_execution/.commandlogging/17510281386106517343193566288/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751028138.0849483,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0640628337860107 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510281386106517343193566288/after_comand-0-out b/tests/command_execution/.commandlogging/17510281386106517343193566288/after_comand-0-out new file mode 100644 index 00000000..80a7badd --- /dev/null +++ b/tests/command_execution/.commandlogging/17510281386106517343193566288/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751028138.0842063,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751028138.1868637,2025-06-27T14:42:18,083948310+02:00 +1751028138.2907305,2025-06-27T14:42:18,186703103+02:00 +1751028138.3941128,2025-06-27T14:42:18,290549516+02:00 +1751028138.4979715,2025-06-27T14:42:18,393919083+02:00 +1751028138.4980214,2025-06-27T14:42:18,497793291+02:00 +1751028138.7043622,2025-06-27T14:42:18,601430808+02:00 +1751028138.8069966,2025-06-27T14:42:18,704258830+02:00 +1751028138.9105642,2025-06-27T14:42:18,806848401+02:00 +1751028139.0142083,2025-06-27T14:42:18,910389573+02:00 +1751028139.014265,2025-06-27T14:42:19,014008389+02:00 +1751028139.220092,2025-06-27T14:42:19,116593390+02:00 +1751028139.323972,2025-06-27T14:42:19,219910588+02:00 +1751028139.427654,2025-06-27T14:42:19,323744206+02:00 +1751028139.531219,2025-06-27T14:42:19,427471766+02:00 +1751028139.5312903,2025-06-27T14:42:19,530990025+02:00 +1751028139.7372148,2025-06-27T14:42:19,634064504+02:00 +1751028139.8406444,2025-06-27T14:42:19,736992960+02:00 +1751028139.9444094,2025-06-27T14:42:19,840467750+02:00 +1751028140.0474384,2025-06-27T14:42:19,944205266+02:00 +1751028140.047478,2025-06-27T14:42:20,047305056+02:00 +hookend +2.0647339820861816 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510281386106517343193566288/after_initial_input b/tests/command_execution/.commandlogging/17510281386106517343193566288/after_initial_input new file mode 100644 index 00000000..aa674ed1 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510281386106517343193566288/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751028138.0840635,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.00036978721618652344 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510281386106517343193566288/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510281386106517343193566288/hook_function_line-0-out new file mode 100644 index 00000000..24a06f53 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510281386106517343193566288/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751028138.0857978,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751028138.187022,2025-06-27T14:42:18,083948310+02:00 +1751028138.2909286,2025-06-27T14:42:18,186703103+02:00 +1751028138.3943644,2025-06-27T14:42:18,290549516+02:00 +1751028138.498261,2025-06-27T14:42:18,393919083+02:00 +1751028138.498338,2025-06-27T14:42:18,497793291+02:00 +1751028138.7047067,2025-06-27T14:42:18,601430808+02:00 +1751028138.8072734,2025-06-27T14:42:18,704258830+02:00 +1751028138.9110188,2025-06-27T14:42:18,806848401+02:00 +1751028139.0144868,2025-06-27T14:42:18,910389573+02:00 +1751028139.014526,2025-06-27T14:42:19,014008389+02:00 +1751028139.2205803,2025-06-27T14:42:19,116593390+02:00 +1751028139.3243856,2025-06-27T14:42:19,219910588+02:00 +1751028139.4279382,2025-06-27T14:42:19,323744206+02:00 +1751028139.531544,2025-06-27T14:42:19,427471766+02:00 +1751028139.5317252,2025-06-27T14:42:19,530990025+02:00 +1751028139.7374089,2025-06-27T14:42:19,634064504+02:00 +1751028139.8408935,2025-06-27T14:42:19,736992960+02:00 +1751028139.9447157,2025-06-27T14:42:19,840467750+02:00 +1751028140.0476544,2025-06-27T14:42:19,944205266+02:00 +1751028140.0476856,2025-06-27T14:42:20,047305056+02:00 diff --git a/tests/command_execution/.commandlogging/17510281386106517343193566288/void_input-1-err b/tests/command_execution/.commandlogging/17510281386106517343193566288/void_input-1-err new file mode 100644 index 00000000..cdaae982 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510281386106517343193566288/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751028138.0866852,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510281386106517343193566288/void_input-1-out b/tests/command_execution/.commandlogging/17510281386106517343193566288/void_input-1-out new file mode 100644 index 00000000..a78ac350 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510281386106517343193566288/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751028138.0866132,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510284145298888010555680136/after_comand-0-err b/tests/command_execution/.commandlogging/17510284145298888010555680136/after_comand-0-err new file mode 100644 index 00000000..775db625 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510284145298888010555680136/after_comand-0-err @@ -0,0 +1,4 @@ +hookstart,command,location +1751028414.2706537,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err +hookend +2.0565128326416016 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510284145298888010555680136/after_comand-0-out b/tests/command_execution/.commandlogging/17510284145298888010555680136/after_comand-0-out new file mode 100644 index 00000000..80483a8d --- /dev/null +++ b/tests/command_execution/.commandlogging/17510284145298888010555680136/after_comand-0-out @@ -0,0 +1,24 @@ +hookstart,command,location +1751028414.2700377,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out +1751028414.3720646,2025-06-27T14:46:54,269417555+02:00 +1751028414.4749134,2025-06-27T14:46:54,371887833+02:00 +1751028414.578003,2025-06-27T14:46:54,474739129+02:00 +1751028414.6819012,2025-06-27T14:46:54,577828550+02:00 +1751028414.6819522,2025-06-27T14:46:54,681719359+02:00 +1751028414.8882024,2025-06-27T14:46:54,785232316+02:00 +1751028414.9909122,2025-06-27T14:46:54,888021634+02:00 +1751028415.0940998,2025-06-27T14:46:54,990717595+02:00 +1751028415.1972826,2025-06-27T14:46:55,093919312+02:00 +1751028415.1973302,2025-06-27T14:46:55,197061112+02:00 +1751028415.4023526,2025-06-27T14:46:55,299186595+02:00 +1751028415.5052876,2025-06-27T14:46:55,402152751+02:00 +1751028415.6092272,2025-06-27T14:46:55,505086442+02:00 +1751028415.7124035,2025-06-27T14:46:55,609012373+02:00 +1751028415.7124488,2025-06-27T14:46:55,712124358+02:00 +1751028415.9181612,2025-06-27T14:46:55,815112595+02:00 +1751028416.0206287,2025-06-27T14:46:55,918007930+02:00 +1751028416.123226,2025-06-27T14:46:56,020545591+02:00 +1751028416.2256234,2025-06-27T14:46:56,123044198+02:00 +1751028416.2256663,2025-06-27T14:46:56,225551394+02:00 +hookend +2.0570852756500244 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510284145298888010555680136/after_initial_input b/tests/command_execution/.commandlogging/17510284145298888010555680136/after_initial_input new file mode 100644 index 00000000..012a6bc2 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510284145298888010555680136/after_initial_input @@ -0,0 +1,4 @@ +hookstart,command,location +1751028414.2697418,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input +hookend +0.0003952980041503906 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510284145298888010555680136/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510284145298888010555680136/hook_function_line-0-out new file mode 100644 index 00000000..f32086b3 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510284145298888010555680136/hook_function_line-0-out @@ -0,0 +1,22 @@ +hookstart,command,location +1751028414.2713072,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out +1751028414.3723876,2025-06-27T14:46:54,269417555+02:00 +1751028414.4751458,2025-06-27T14:46:54,371887833+02:00 +1751028414.578264,2025-06-27T14:46:54,474739129+02:00 +1751028414.6820486,2025-06-27T14:46:54,577828550+02:00 +1751028414.6822817,2025-06-27T14:46:54,681719359+02:00 +1751028414.8884573,2025-06-27T14:46:54,785232316+02:00 +1751028414.99106,2025-06-27T14:46:54,888021634+02:00 +1751028415.0943604,2025-06-27T14:46:54,990717595+02:00 +1751028415.1975763,2025-06-27T14:46:55,093919312+02:00 +1751028415.1976147,2025-06-27T14:46:55,197061112+02:00 +1751028415.402644,2025-06-27T14:46:55,299186595+02:00 +1751028415.5055416,2025-06-27T14:46:55,402152751+02:00 +1751028415.6094806,2025-06-27T14:46:55,505086442+02:00 +1751028415.7125494,2025-06-27T14:46:55,609012373+02:00 +1751028415.7125847,2025-06-27T14:46:55,712124358+02:00 +1751028415.9184003,2025-06-27T14:46:55,815112595+02:00 +1751028416.0208097,2025-06-27T14:46:55,918007930+02:00 +1751028416.1233768,2025-06-27T14:46:56,020545591+02:00 +1751028416.225793,2025-06-27T14:46:56,123044198+02:00 +1751028416.2258246,2025-06-27T14:46:56,225551394+02:00 diff --git a/tests/command_execution/.commandlogging/17510284145298888010555680136/void_input-1-err b/tests/command_execution/.commandlogging/17510284145298888010555680136/void_input-1-err new file mode 100644 index 00000000..a55877b9 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510284145298888010555680136/void_input-1-err @@ -0,0 +1,2 @@ +hookstart,command,location +1751028414.2723706,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510284145298888010555680136/void_input-1-out b/tests/command_execution/.commandlogging/17510284145298888010555680136/void_input-1-out new file mode 100644 index 00000000..8b9a7208 --- /dev/null +++ b/tests/command_execution/.commandlogging/17510284145298888010555680136/void_input-1-out @@ -0,0 +1,2 @@ +hookstart,command,location +1751028414.2726085,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/a b/tests/command_execution/a new file mode 100644 index 00000000..3a701784 --- /dev/null +++ b/tests/command_execution/a @@ -0,0 +1,144 @@ +/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command +24 +23 +[popenfile(path='/run/user/1000/pipewire-0.lock', fd=19, position=0, mode='r', flags=557056), popenfile(path='/run/user/1000/pipewire-0-manager.lock', fd=21, position=0, mode='r', flags=557056)] +[] +[] +[] +[] +[] +[popenfile(path='/home/aaronb/.xsession-errors', fd=1, position=162037, mode='a', flags=33793), popenfile(path='/home/aaronb/.xsession-errors', fd=2, position=162037, mode='a', flags=33793), popenfile(path='/home/aaronb/.cache/ksycoca5_en_r2k4mRSkOYKom1k68zFsTE33mxk=', fd=10, position=0, mode='r', flags=557056)] +[popenfile(path='/home/aaronb/.xsession-errors', fd=1, position=162037, mode='a', flags=33793)] +[] +[] +[] +[] +[] +[popenfile(path='/home/aaronb/.cache/ksycoca5_en_r2k4mRSkOYKom1k68zFsTE33mxk=', fd=27, position=0, mode='r', flags=557056)] +[] +[popenfile(path='/home/aaronb/.cache/ksycoca5_en_r2k4mRSkOYKom1k68zFsTE33mxk=', fd=14, position=0, mode='r', flags=557056), popenfile(path='/usr/share/mime/mime.cache', fd=15, position=0, mode='r', flags=557056), popenfile(path='/home/aaronb/.config/libaccounts-glib/accounts.db', fd=18, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/libaccounts-glib/accounts.db-wal', fd=19, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/libaccounts-glib/accounts.db-shm', fd=20, position=0, mode='r+', flags=688130), popenfile(path='/var/lib/dpkg/status', fd=25, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/packages.microsoft.com_repos_code_dists_stable_main_binary-armhf_Packages', fd=29, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/packages.microsoft.com_repos_code_dists_stable_main_binary-arm64_Packages', fd=30, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/packages.microsoft.com_repos_code_dists_stable_main_binary-amd64_Packages', fd=31, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_multiverse_i18n_Translation-en', fd=32, position=28138, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_multiverse_binary-i386_Packages', fd=33, position=13705, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_multiverse_binary-amd64_Packages', fd=34, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_restricted_i18n_Translation-en', fd=35, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_restricted_binary-i386_Packages', fd=36, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_restricted_binary-amd64_Packages', fd=37, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_universe_i18n_Translation-en', fd=38, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_universe_binary-i386_Packages', fd=39, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_universe_binary-amd64_Packages', fd=40, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_main_i18n_Translation-en', fd=41, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_main_binary-i386_Packages', fd=42, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_main_binary-amd64_Packages', fd=43, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_universe_i18n_Translation-en', fd=44, position=59865, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_universe_binary-i386_Packages', fd=45, position=62206, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_universe_binary-amd64_Packages', fd=46, position=90072, mode='r', flags=557056), popenfile(path='/proc/2296/mounts', fd=55, position=0, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_main_i18n_Translation-en', fd=60, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_main_binary-i386_Packages', fd=61, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_main_binary-amd64_Packages', fd=62, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_multiverse_i18n_Translation-en', fd=63, position=35036, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_multiverse_binary-i386_Packages', fd=64, position=16900, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_multiverse_binary-amd64_Packages', fd=65, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_restricted_i18n_Translation-en', fd=66, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_restricted_binary-i386_Packages', fd=67, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_restricted_binary-amd64_Packages', fd=68, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_universe_i18n_Translation-en', fd=69, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_universe_binary-i386_Packages', fd=70, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_universe_binary-amd64_Packages', fd=71, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_main_i18n_Translation-en', fd=72, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_main_binary-i386_Packages', fd=73, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_main_binary-amd64_Packages', fd=74, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_multiverse_i18n_Translation-en', fd=75, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_multiverse_binary-i386_Packages', fd=76, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_multiverse_binary-amd64_Packages', fd=77, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_restricted_i18n_Translation-en', fd=78, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_restricted_binary-i386_Packages', fd=79, position=78519, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_restricted_binary-amd64_Packages', fd=80, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_universe_i18n_Translation-en', fd=81, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_universe_binary-i386_Packages', fd=82, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_universe_binary-amd64_Packages', fd=83, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_main_i18n_Translation-en', fd=84, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_main_binary-i386_Packages', fd=85, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_main_binary-amd64_Packages', fd=86, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_graphics-drivers_ppa_ubuntu_dists_noble_main_i18n_Translation-en', fd=87, position=82241, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_graphics-drivers_ppa_ubuntu_dists_noble_main_binary-i386_Packages', fd=88, position=74603, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_graphics-drivers_ppa_ubuntu_dists_noble_main_binary-amd64_Packages', fd=89, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages', fd=90, position=5506, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/download.docker.com_linux_ubuntu_dists_noble_stable_binary-amd64_Packages', fd=91, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_deadsnakes_ppa_ubuntu_dists_noble_main_i18n_Translation-en', fd=92, position=54027, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_deadsnakes_ppa_ubuntu_dists_noble_main_binary-i386_Packages', fd=93, position=49236, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_deadsnakes_ppa_ubuntu_dists_noble_main_binary-amd64_Packages', fd=94, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/dpkg/status', fd=95, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/packages.microsoft.com_repos_code_dists_stable_main_binary-armhf_Packages', fd=96, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/packages.microsoft.com_repos_code_dists_stable_main_binary-arm64_Packages', fd=97, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/packages.microsoft.com_repos_code_dists_stable_main_binary-amd64_Packages', fd=98, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_multiverse_i18n_Translation-en', fd=99, position=28138, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_multiverse_binary-i386_Packages', fd=100, position=13705, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_multiverse_binary-amd64_Packages', fd=101, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_restricted_i18n_Translation-en', fd=102, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_restricted_binary-i386_Packages', fd=103, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_restricted_binary-amd64_Packages', fd=104, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_universe_i18n_Translation-en', fd=105, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_universe_binary-i386_Packages', fd=106, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_universe_binary-amd64_Packages', fd=107, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_main_i18n_Translation-en', fd=108, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_main_binary-i386_Packages', fd=109, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_main_binary-amd64_Packages', fd=110, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_universe_i18n_Translation-en', fd=111, position=59865, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_universe_binary-i386_Packages', fd=112, position=62206, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_universe_binary-amd64_Packages', fd=113, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_main_i18n_Translation-en', fd=114, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_main_binary-i386_Packages', fd=115, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_main_binary-amd64_Packages', fd=116, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_multiverse_i18n_Translation-en', fd=117, position=35036, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_multiverse_binary-i386_Packages', fd=118, position=16900, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_multiverse_binary-amd64_Packages', fd=119, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_restricted_i18n_Translation-en', fd=120, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_restricted_binary-i386_Packages', fd=121, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_restricted_binary-amd64_Packages', fd=122, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_universe_i18n_Translation-en', fd=123, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_universe_binary-i386_Packages', fd=124, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_universe_binary-amd64_Packages', fd=125, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_main_i18n_Translation-en', fd=126, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_main_binary-i386_Packages', fd=127, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_main_binary-amd64_Packages', fd=128, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_multiverse_i18n_Translation-en', fd=129, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_multiverse_binary-i386_Packages', fd=130, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_multiverse_binary-amd64_Packages', fd=131, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_restricted_i18n_Translation-en', fd=132, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_restricted_binary-i386_Packages', fd=133, position=78519, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_restricted_binary-amd64_Packages', fd=134, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_universe_i18n_Translation-en', fd=135, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_universe_binary-i386_Packages', fd=136, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_universe_binary-amd64_Packages', fd=137, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_main_i18n_Translation-en', fd=138, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_main_binary-i386_Packages', fd=139, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_main_binary-amd64_Packages', fd=140, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_graphics-drivers_ppa_ubuntu_dists_noble_main_i18n_Translation-en', fd=141, position=82241, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_graphics-drivers_ppa_ubuntu_dists_noble_main_binary-i386_Packages', fd=142, position=74603, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_graphics-drivers_ppa_ubuntu_dists_noble_main_binary-amd64_Packages', fd=143, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages', fd=144, position=5506, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/download.docker.com_linux_ubuntu_dists_noble_stable_binary-amd64_Packages', fd=145, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_deadsnakes_ppa_ubuntu_dists_noble_main_i18n_Translation-en', fd=146, position=54027, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_deadsnakes_ppa_ubuntu_dists_noble_main_binary-i386_Packages', fd=147, position=49236, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_deadsnakes_ppa_ubuntu_dists_noble_main_binary-amd64_Packages', fd=148, position=90072, mode='r', flags=557056)] +[] +[] +[] +[popenfile(path='/home/aaronb/.cache/ksycoca5_en_r2k4mRSkOYKom1k68zFsTE33mxk=', fd=19, position=0, mode='r', flags=557056), popenfile(path='/usr/share/mime/mime.cache', fd=20, position=0, mode='r', flags=557056), popenfile(path='/home/aaronb/.local/share/kactivitymanagerd/resources/database', fd=26, position=0, mode='r', flags=688128), popenfile(path='/proc/2348/mounts', fd=31, position=0, mode='r', flags=557056), popenfile(path='/home/aaronb/.cache/bookmarksrunner/KRunner-Chrome-Favicons-Default.sqlite', fd=37, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.cache/ksycoca5_en_r2k4mRSkOYKom1k68zFsTE33mxk=', fd=56, position=0, mode='r', flags=557056), popenfile(path='/home/aaronb/.local/share/kactivitymanagerd/resources/database-wal', fd=59, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.local/share/kactivitymanagerd/resources/database-shm', fd=60, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.cache/ksycoca5_en_r2k4mRSkOYKom1k68zFsTE33mxk=', fd=79, position=0, mode='r', flags=557056)] +[popenfile(path='/home/aaronb/.local/share/kactivitymanagerd/resources/database', fd=15, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.local/share/kactivitymanagerd/resources/database-wal', fd=16, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.local/share/kactivitymanagerd/resources/database-shm', fd=17, position=0, mode='r+', flags=688130)] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[] +[popenfile(path='/proc/2670/mounts', fd=16, position=0, mode='r', flags=557056), popenfile(path='/home/aaronb/.cache/ksycoca5_en_r2k4mRSkOYKom1k68zFsTE33mxk=', fd=21, position=0, mode='r', flags=557056), popenfile(path='/usr/share/mime/mime.cache', fd=26, position=0, mode='r', flags=557056)] +[] +[] +[] +[popenfile(path='/usr/share/code/icudtl.dat', fd=3, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=4, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=54, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=55, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/locales/en-US.pak', fd=56, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/resources.pak', fd=57, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/Code/Local Storage/leveldb/LOG', fd=65, position=259, mode='w', flags=32769), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=66, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/Code/Local Storage/leveldb/MANIFEST-000001', fd=72, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/Local Storage/leveldb/LOCK', fd=73, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/Service Worker/Database/LOG', fd=75, position=263, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/Code/Service Worker/Database/LOCK', fd=76, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/Service Worker/Database/MANIFEST-000001', fd=77, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/Dictionaries/en-US-10-1.bdic', fd=78, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/Code/Service Worker/Database/000003.log', fd=79, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/Local Storage/leveldb/000003.log', fd=80, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/main.log', fd=82, position=190, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/DIPS', fd=89, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/DIPS-wal', fd=90, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/DIPS-shm', fd=91, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/GPUCache/index', fd=94, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnGraphiteCache/index', fd=96, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnWebGPUCache/data_3', fd=97, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnWebGPUCache/data_2', fd=98, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/GPUCache/data_0', fd=99, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/GPUCache/data_1', fd=100, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/GPUCache/data_2', fd=101, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/GPUCache/data_3', fd=102, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnWebGPUCache/index', fd=103, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnWebGPUCache/data_0', fd=104, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnWebGPUCache/data_1', fd=105, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnGraphiteCache/data_0', fd=106, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnGraphiteCache/data_1', fd=107, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnGraphiteCache/data_2', fd=108, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnGraphiteCache/data_3', fd=109, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/SharedStorage', fd=112, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/User/globalStorage/state.vscdb', fd=114, position=249856, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/User/workspaceStorage/f8e525ea3594ace2283e0c4ac2e7111f/state.vscdb', fd=116, position=114688, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/SharedStorage-wal', fd=117, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/renderer.log', fd=119, position=1380, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/views.log', fd=122, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.pki/nssdb/cert9.db', fd=140, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.pki/nssdb/key4.db', fd=142, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/terminal.log', fd=146, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/network.log', fd=147, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/network-shared.log', fd=148, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/userDataSync.log', fd=149, position=162, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/sharedprocess.log', fd=150, position=128, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/telemetry.log', fd=151, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/remoteTunnelService.log', fd=152, position=55, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/notebook.rendering.log', fd=153, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/editSessions.log', fd=154, position=131, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/output_20250627T140927/tasks.log', fd=155, position=0, mode='a', flags=33793)] +[popenfile(path='/usr/share/code/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=32768)] +[popenfile(path='/usr/share/code/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=32768)] +[popenfile(path='/usr/share/code/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=32768)] +[] +[popenfile(path='/usr/share/code/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/sys/devices/virtual/tty/tty0/active', fd=16, position=5, mode='r', flags=557056)] +[popenfile(path='/usr/share/code/icudtl.dat', fd=4, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/Code/Shared Dictionary/db', fd=16, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/Trust Tokens', fd=17, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/Cookies', fd=24, position=0, mode='r+', flags=688130), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/usr/share/code/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=16, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/Code/Dictionaries/en-US-10-1.bdic', fd=19, position=0, mode='r', flags=32768), popenfile(path='/proc/3006/statm', fd=20, position=39, mode='r', flags=32768), popenfile(path='/proc/3006/status', fd=21, position=1562, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Regular.ttf', fd=23, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Italic.ttf', fd=29, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/ubuntu/Ubuntu[wdth,wght].ttf', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=37, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc', fd=38, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Bold.ttf', fd=39, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf', fd=41, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=51, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=52, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/ubuntu/UbuntuMono[wght].ttf', fd=53, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansSymbols2-Regular.ttf', fd=54, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Bold.ttf', fd=56, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMath-Regular.ttf', fd=57, position=0, mode='r', flags=32768)] +[popenfile(path='/usr/share/code/icudtl.dat', fd=4, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=557056), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/exthost.log', fd=41, position=6921, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/extHostTelemetry.log', fd=42, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python.log', fd=44, position=13760, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.json-language-features/JSON Language Server.log', fd=48, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.debugpy/Python Debugger.log', fd=52, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.mypy-type-checker/Mypy Type Checker.log', fd=53, position=58206, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.pylint/Pylint.log', fd=55, position=311400, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github-authentication/GitHub Authentication.log', fd=57, position=2271, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python Locator.log', fd=58, position=4995, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/1-Jupyter.log', fd=62, position=384, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/2-Jupyter Server Console.log', fd=64, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.git/Git.log', fd=66, position=61439, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github/GitHub.log', fd=69, position=47, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python Language Server.log', fd=89, position=6799, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/usr/share/code/icudtl.dat', fd=4, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/usr/share/code/icudtl.dat', fd=4, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/exthost.log', fd=41, position=6921, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/extHostTelemetry.log', fd=42, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/usr/share/code/icudtl.dat', fd=4, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=557056), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/usr/share/code/icudtl.dat', fd=4, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=12, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/exthost.log', fd=41, position=6921, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/extHostTelemetry.log', fd=42, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python.log', fd=44, position=13760, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github-authentication/GitHub Authentication.log', fd=57, position=2271, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python Locator.log', fd=58, position=4995, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/1-Jupyter.log', fd=62, position=384, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/2-Jupyter Server Console.log', fd=64, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/usr/share/code/icudtl.dat', fd=4, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=12, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/exthost.log', fd=41, position=6921, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/extHostTelemetry.log', fd=42, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python.log', fd=44, position=13760, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.json-language-features/JSON Language Server.log', fd=48, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.debugpy/Python Debugger.log', fd=52, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.mypy-type-checker/Mypy Type Checker.log', fd=53, position=58206, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.pylint/Pylint.log', fd=55, position=311400, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github-authentication/GitHub Authentication.log', fd=57, position=2271, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python Locator.log', fd=58, position=4995, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/1-Jupyter.log', fd=62, position=384, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/2-Jupyter Server Console.log', fd=64, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.git/Git.log', fd=66, position=61439, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github/GitHub.log', fd=69, position=47, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/exthost.log', fd=41, position=6921, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/extHostTelemetry.log', fd=42, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python.log', fd=44, position=13760, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.json-language-features/JSON Language Server.log', fd=48, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.debugpy/Python Debugger.log', fd=52, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.mypy-type-checker/Mypy Type Checker.log', fd=53, position=58206, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.pylint/Pylint.log', fd=55, position=311400, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github-authentication/GitHub Authentication.log', fd=57, position=2271, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python Locator.log', fd=58, position=4995, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/1-Jupyter.log', fd=62, position=384, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/2-Jupyter Server Console.log', fd=64, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.git/Git.log', fd=66, position=61439, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github/GitHub.log', fd=69, position=47, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/exthost.log', fd=41, position=6921, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/extHostTelemetry.log', fd=42, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python.log', fd=44, position=13760, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.json-language-features/JSON Language Server.log', fd=48, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.debugpy/Python Debugger.log', fd=52, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.mypy-type-checker/Mypy Type Checker.log', fd=53, position=58206, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.pylint/Pylint.log', fd=55, position=311400, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github-authentication/GitHub Authentication.log', fd=57, position=2271, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python Locator.log', fd=58, position=4995, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/1-Jupyter.log', fd=62, position=384, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/2-Jupyter Server Console.log', fd=64, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.git/Git.log', fd=66, position=61439, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github/GitHub.log', fd=69, position=47, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.vscode/extensions/ms-python.python-2025.8.0-linux-x64/python_files/deactivate/bash/deactivate', fd=254, position=1367, mode='r', flags=557056)] +[popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=3, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=16, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=17, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=18, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=19, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/segmentation_platform/ukm_db', fd=53, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/ShaderCache/index', fd=60, position=0, mode='r+', flags=32770), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=62, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/segmentation_platform/ukm_db-wal', fd=63, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/ShaderCache/data_0', fd=64, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/ShaderCache/data_1', fd=65, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/ShaderCache/data_2', fd=66, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/ShaderCache/data_3', fd=68, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Service Worker/Database/LOG', fd=70, position=300, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Site Characteristics Database/LOG', fd=71, position=312, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Site Characteristics Database/LOCK', fd=72, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Favicons', fd=73, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Sync Data/LevelDB/LOG', fd=75, position=288, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Sync Data/LevelDB/LOCK', fd=76, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_www.youtube.com_0.indexeddb.leveldb/MANIFEST-000001', fd=77, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/History', fd=78, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Sync Data/LevelDB/MANIFEST-000001', fd=79, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/ServerCertificate', fd=81, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Service Worker/Database/LOCK', fd=82, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Service Worker/Database/MANIFEST-000001', fd=83, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Site Characteristics Database/MANIFEST-000001', fd=85, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Affiliation Database', fd=87, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Sync Data/LevelDB/000003.log', fd=88, position=238861, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Service Worker/Database/000004.log', fd=89, position=163576, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Site Characteristics Database/000003.log', fd=90, position=74779, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Service Worker/Database/000005.ldb', fd=91, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Extension Scripts/LOG', fd=93, position=288, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Extension Scripts/LOCK', fd=94, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/LOCK', fd=95, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=96, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Extension Scripts/MANIFEST-000001', fd=97, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Extension Scripts/000003.log', fd=98, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlCsdDownloadAllowlist.store.32_13389176054397517', fd=103, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlSubresourceFilter.store.4_13395498213150205', fd=105, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Login Data', fd=106, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/ChromeExtMalware.store.32_13395482096607327', fd=107, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=111, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlCsdAllowlist.store.32_13395482096613839', fd=112, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlCsdAllowlist.store.4_13395482096613826', fd=113, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlSuspiciousSite.store.4_13395494627034060', fd=114, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=116, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlHighConfidenceAllowlist.store.32_13395492835981034', fd=117, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Top Sites', fd=118, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Extension State/000112.log', fd=119, position=1639534, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_app.slack.com_0.indexeddb.leveldb/LOG', fd=120, position=353, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/GPUCache/index', fd=121, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/History-journal', fd=124, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnGraphiteCache/data_1', fd=125, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_www.youtube.com_0.indexeddb.leveldb/000638.log', fd=126, position=1339340, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/File System/Origins/LOG', fd=127, position=292, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/GPUCache/data_0', fd=128, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/GPUCache/data_1', fd=129, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/GPUCache/data_2', fd=130, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/GPUCache/data_3', fd=131, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnWebGPUCache/index', fd=132, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlSoceng.store.4_13395500852294919', fd=133, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnWebGPUCache/data_0', fd=134, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnWebGPUCache/data_1', fd=135, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnWebGPUCache/data_2', fd=136, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnWebGPUCache/data_3', fd=137, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnGraphiteCache/index', fd=138, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnGraphiteCache/data_0', fd=139, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/metadata/LOG', fd=140, position=302, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnGraphiteCache/data_2', fd=142, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnGraphiteCache/data_3', fd=143, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlMalware.store.4_13395500852452371', fd=144, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/WebStorage/QuotaManager', fd=146, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/WebStorage/QuotaManager-journal', fd=147, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Platform Notifications/LOG', fd=148, position=298, mode='w', flags=32769), popenfile(path='/home/aaronb/.pki/nssdb/cert9.db', fd=150, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Account Web Data', fd=151, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Login Data For Account', fd=154, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/metadata/LOCK', fd=157, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/metadata/MANIFEST-000001', fd=158, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/metadata/000003.log', fd=159, position=2840, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/LOG', fd=160, position=285, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/LOCK', fd=161, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/MANIFEST-000001', fd=162, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/000011.log', fd=163, position=412476, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/000013.ldb', fd=164, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/File System/Origins/LOCK', fd=170, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Platform Notifications/LOCK', fd=174, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Extension State/LOG', fd=176, position=286, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Web Data', fd=179, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Platform Notifications/MANIFEST-000001', fd=180, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Extension State/LOCK', fd=181, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Extension State/MANIFEST-000001', fd=182, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Platform Notifications/000003.log', fd=183, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/SharedStorage', fd=184, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/SharedStorage-wal', fd=185, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.pki/nssdb/key4.db', fd=186, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/nngceckbapebfimnlniiiahkandclblb/LOG', fd=187, position=368, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/nngceckbapebfimnlniiiahkandclblb/LOCK', fd=188, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/nngceckbapebfimnlniiiahkandclblb/MANIFEST-000001', fd=189, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/nngceckbapebfimnlniiiahkandclblb/000004.log', fd=190, position=3820521, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/nngceckbapebfimnlniiiahkandclblb/000005.ldb', fd=191, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/GrShaderCache/index', fd=192, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GrShaderCache/data_0', fd=196, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GraphiteDawnCache/index', fd=197, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GrShaderCache/data_1', fd=198, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GrShaderCache/data_2', fd=199, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GrShaderCache/data_3', fd=200, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Session Storage/LOCK', fd=202, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GraphiteDawnCache/data_0', fd=203, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GraphiteDawnCache/data_2', fd=204, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GraphiteDawnCache/data_1', fd=205, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GraphiteDawnCache/data_3', fd=207, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Sessions/Tabs_13395500706598450', fd=208, position=999813, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Conversions', fd=210, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/GCM Store/LOG', fd=212, position=272, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_app.slack.com_0.indexeddb.leveldb/LOCK', fd=216, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_app.slack.com_0.indexeddb.leveldb/MANIFEST-000001', fd=217, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_app.slack.com_0.indexeddb.leveldb/000064.log', fd=218, position=144053, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Web Data-journal', fd=219, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/GCM Store/LOCK', fd=220, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/GCM Store/MANIFEST-000001', fd=221, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/GCM Store/000003.log', fd=222, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/heavy_ad_intervention_opt_out.db', fd=223, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Shortcuts', fd=224, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Network Action Predictor', fd=225, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/DIPS', fd=227, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/DIPS-wal', fd=228, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/AggregationService', fd=229, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/first_party_sets.db-journal', fd=230, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Managed Extension Settings/nngceckbapebfimnlniiiahkandclblb/LOG', fd=231, position=372, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/ZxcvbnData/3/ranked_dicts', fd=232, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/26/E6DC4029A1E4B4C1/28EB64391A8057C3/model.tflite', fd=233, position=7112, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/GCM Store/Encryption/LOG', fd=234, position=294, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/GCM Store/Encryption/LOCK', fd=235, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/GCM Store/Encryption/MANIFEST-000001', fd=236, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/GCM Store/Encryption/000003.log', fd=237, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/BrowsingTopicsSiteData', fd=238, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/first_party_sets.db', fd=239, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/24/E6DC4029A1E4B4C1/CA3E3A76AD9D5A66/model.tflite', fd=240, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=241, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Network Action Predictor-journal', fd=243, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/2/E6DC4029A1E4B4C1/B1C713E0BEE05218/model.tflite', fd=244, position=392048, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Managed Extension Settings/nngceckbapebfimnlniiiahkandclblb/LOCK', fd=245, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Managed Extension Settings/nngceckbapebfimnlniiiahkandclblb/MANIFEST-000001', fd=249, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Managed Extension Settings/nngceckbapebfimnlniiiahkandclblb/000003.log', fd=250, position=1938, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/File System/Origins/MANIFEST-000001', fd=254, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlUws.store.4_13395500852454770', fd=255, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_app.slack.com_0.indexeddb.leveldb/000066.ldb', fd=257, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlBilling.store.4_13395500852455893', fd=260, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Sessions/Session_13395501745518928', fd=261, position=455134, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlMalBin.store.4_13395500852456435', fd=263, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Favicons-journal', fd=274, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Login Data For Account-journal', fd=276, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/hyphen-data/120.0.6050.0/hyph-en-us.hyb', fd=289, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Conversions-journal', fd=308, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/PrivateAggregation', fd=310, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/AggregationService-journal', fd=311, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/PrivateAggregation-journal', fd=325, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=349, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/lokpenepehfdekijkebhpnpcjjpngpnd/LOG', fd=355, position=368, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/File System/Origins/000003.log', fd=357, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Account Web Data-journal', fd=382, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/lokpenepehfdekijkebhpnpcjjpngpnd/LOCK', fd=384, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/lokpenepehfdekijkebhpnpcjjpngpnd/MANIFEST-000001', fd=390, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_www.youtube.com_0.indexeddb.leveldb/LOG', fd=391, position=358, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/lokpenepehfdekijkebhpnpcjjpngpnd/000003.log', fd=392, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_www.youtube.com_0.indexeddb.leveldb/LOCK', fd=393, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/MediaDeviceSalts', fd=394, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_www.youtube.com_0.indexeddb.leveldb/000640.ldb', fd=395, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Shortcuts-journal', fd=441, position=0, mode='r+', flags=688130)] +[] +[] +[] +[] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/sys/devices/virtual/tty/tty0/active', fd=19, position=5, mode='r', flags=557056)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=4, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=11, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Trust Tokens', fd=18, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Cookies', fd=19, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Shared Dictionary/db', fd=20, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Reporting and NEL', fd=21, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Safe Browsing Cookies', fd=23, position=0, mode='r+', flags=688130), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Trust Tokens-journal', fd=404, position=0, mode='r+', flags=688130)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/LOG', fd=20, position=1960, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/MANIFEST-000001', fd=21, position=415164, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/003647.ldb', fd=23, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/003645.ldb', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/000005.ldb', fd=25, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Session Storage/LOG', fd=27, position=437, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Session Storage/MANIFEST-000001', fd=28, position=32468, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Session Storage/000630.ldb', fd=29, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Session Storage/000005.ldb', fd=30, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Session Storage/000627.ldb', fd=31, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Session Storage/000625.ldb', fd=32, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/003646.log', fd=43, position=39884, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Session Storage/000629.log', fd=48, position=3732, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/003640.ldb', fd=75, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/003641.ldb', fd=76, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/003642.ldb', fd=78, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/003643.ldb', fd=79, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=25, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/proc/7051/statm', fd=29, position=39, mode='r', flags=32768), popenfile(path='/proc/7051/status', fd=30, position=1562, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=37, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=29, position=0, mode='r', flags=32768), popenfile(path='/proc/7148/statm', fd=30, position=39, mode='r', flags=32768), popenfile(path='/proc/7148/status', fd=31, position=1562, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=38, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf', fd=20, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=22, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7184/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7184/status', fd=29, position=1564, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansSymbols2-Regular.ttf', fd=30, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=45, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf', fd=20, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7210/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7210/status', fd=29, position=1567, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=32, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=40, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=41, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Regular.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=43, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=49, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Italic.ttf', fd=71, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=74, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/hyphen-data/120.0.6050.0/hyph-en-us.hyb', fd=75, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Bold.ttf', fd=31, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=32, position=0, mode='r', flags=32768), popenfile(path='/proc/7215/statm', fd=33, position=39, mode='r', flags=32768), popenfile(path='/proc/7215/status', fd=34, position=1567, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf', fd=39, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-BoldItalic.ttf', fd=40, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-BoldItalic.ttf', fd=41, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=43, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=47, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Bold.ttf', fd=48, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf', fd=49, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=53, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Italic.ttf', fd=54, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Regular.ttf', fd=55, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=56, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansArabic-Regular.ttf', fd=59, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/hyphen-data/120.0.6050.0/hyph-en-us.hyb', fd=61, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7254/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7254/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7301/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7301/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=44, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7310/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7310/status', fd=29, position=1569, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=39, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=48, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/ubuntu/Ubuntu[wdth,wght].ttf', fd=50, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf', fd=52, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=53, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf', fd=55, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Bold.ttf', fd=56, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf', fd=57, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Regular.ttf', fd=61, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=67, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7320/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7320/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=40, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=42, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=43, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=44, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=45, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/proc/7328/statm', fd=26, position=39, mode='r', flags=32768), popenfile(path='/proc/7328/status', fd=27, position=1567, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=29, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=39, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=44, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Regular.ttf', fd=45, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=46, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf', fd=47, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=51, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=52, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=66, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=67, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=68, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=70, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=4, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=11, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=20, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=29, position=0, mode='r', flags=32768), popenfile(path='/proc/7409/statm', fd=30, position=39, mode='r', flags=32768), popenfile(path='/proc/7409/status', fd=31, position=1568, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=39, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=40, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansSymbols2-Regular.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf', fd=43, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=44, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf', fd=51, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Regular.ttf', fd=57, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7435/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7435/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7536/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7536/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7550/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7550/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=20, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7575/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7575/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=36, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=39, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=30, position=0, mode='r', flags=32768), popenfile(path='/proc/7620/statm', fd=32, position=39, mode='r', flags=32768), popenfile(path='/proc/7620/status', fd=33, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=36, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=32, position=0, mode='r', flags=32768), popenfile(path='/proc/7628/statm', fd=33, position=39, mode='r', flags=32768), popenfile(path='/proc/7628/status', fd=34, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7636/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7636/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=22, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=23, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=25, position=0, mode='r', flags=32768), popenfile(path='/proc/7768/statm', fd=27, position=39, mode='r', flags=32768), popenfile(path='/proc/7768/status', fd=28, position=1565, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=35, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=43, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=30, position=0, mode='r', flags=32768), popenfile(path='/proc/7784/statm', fd=32, position=39, mode='r', flags=32768), popenfile(path='/proc/7784/status', fd=33, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=36, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=25, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/proc/7792/statm', fd=33, position=39, mode='r', flags=32768), popenfile(path='/proc/7792/status', fd=34, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=36, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=28, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/proc/7797/statm', fd=30, position=39, mode='r', flags=32768), popenfile(path='/proc/7797/status', fd=31, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=36, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/proc/7802/statm', fd=25, position=39, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/proc/7802/status', fd=27, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=30, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=25, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/proc/7816/statm', fd=29, position=39, mode='r', flags=32768), popenfile(path='/proc/7816/status', fd=30, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=33, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/proc/7829/statm', fd=29, position=39, mode='r', flags=32768), popenfile(path='/proc/7829/status', fd=30, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=33, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=35, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/proc/7834/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7834/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=30, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=33, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=31, position=0, mode='r', flags=32768), popenfile(path='/proc/7848/statm', fd=32, position=39, mode='r', flags=32768), popenfile(path='/proc/7848/status', fd=33, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=31, position=0, mode='r', flags=32768), popenfile(path='/proc/7856/statm', fd=32, position=39, mode='r', flags=32768), popenfile(path='/proc/7856/status', fd=33, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/proc/7861/statm', fd=27, position=39, mode='r', flags=32768), popenfile(path='/proc/7861/status', fd=28, position=1564, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=31, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=39, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Bold.ttf', fd=40, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf', fd=41, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/hyphen-data/120.0.6050.0/hyph-en-us.hyb', fd=43, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=44, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Italic.ttf', fd=45, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=46, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc', fd=47, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=25, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=34, position=0, mode='r', flags=32768), popenfile(path='/proc/7910/statm', fd=35, position=39, mode='r', flags=32768), popenfile(path='/proc/7910/status', fd=36, position=1565, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=41, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf', fd=43, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=44, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=22, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=30, position=0, mode='r', flags=32768), popenfile(path='/proc/7955/statm', fd=31, position=39, mode='r', flags=32768), popenfile(path='/proc/7955/status', fd=32, position=1565, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=48, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=49, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf', fd=50, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/8008/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/8008/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=31, position=0, mode='r', flags=32768), popenfile(path='/proc/8038/statm', fd=32, position=39, mode='r', flags=32768), popenfile(path='/proc/8038/status', fd=33, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=25, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=35, position=0, mode='r', flags=32768), popenfile(path='/proc/8054/statm', fd=36, position=39, mode='r', flags=32768), popenfile(path='/proc/8054/status', fd=37, position=1566, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=47, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=48, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf', fd=49, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/8105/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/proc/8105/status', fd=30, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=36, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=27, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=31, position=0, mode='r', flags=32768), popenfile(path='/proc/8137/statm', fd=32, position=39, mode='r', flags=32768), popenfile(path='/proc/8137/status', fd=33, position=1567, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=37, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=39, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf', fd=40, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=41, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Italic.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Regular.ttf', fd=43, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=45, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=46, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/proc/8148/statm', fd=30, position=39, mode='r', flags=32768), popenfile(path='/proc/8148/status', fd=31, position=1568, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=33, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/8169/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/8169/status', fd=29, position=1568, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=29, position=0, mode='r', flags=32768), popenfile(path='/proc/8181/statm', fd=30, position=39, mode='r', flags=32768), popenfile(path='/proc/8181/status', fd=31, position=1571, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=40, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=46, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=48, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=49, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf', fd=52, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=54, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Italic.ttf', fd=58, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Bold.ttf', fd=65, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=68, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansArabic-Regular.ttf', fd=71, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=72, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf', fd=73, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=74, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=86, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc', fd=94, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansSymbols2-Regular.ttf', fd=97, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/proc/8205/statm', fd=20, position=39, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/proc/8205/status', fd=22, position=1568, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=25, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/9428/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/9428/status', fd=29, position=1567, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=46, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=47, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=52, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-BoldItalic.ttf', fd=53, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/9484/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/9484/status', fd=29, position=1569, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=50, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=51, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf', fd=52, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=53, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768)] +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/11295/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/11295/status', fd=29, position=1572, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=40, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Bold.ttf', fd=46, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf', fd=47, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=48, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/hyphen-data/120.0.6050.0/hyph-en-us.hyb', fd=49, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=50, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Italic.ttf', fd=51, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc', fd=55, position=0, mode='r', flags=32768)] +pasalong ended +[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/proc/11342/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/11342/status', fd=29, position=1567, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=31, position=0, mode='r', flags=32768)] +[popenfile(path='/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/a', fd=1, position=158120, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/a', fd=1, position=158120, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/a', fd=1, position=158120, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/a', fd=1, position=158120, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[popenfile(path='/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/a', fd=1, position=158120, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] +[] +[OUT | ls] 2025-06-27T14:48:13,421201559+02:00 +[OUT | ls] 2025-06-27T14:48:13,523824289+02:00 +[OUT | ls] 2025-06-27T14:48:13,627651415+02:00 +[OUT | ls] 2025-06-27T14:48:13,731587549+02:00 +[OUT | ls] 2025-06-27T14:48:13,835412328+02:00 +[OUT | ls] 2025-06-27T14:48:13,939105549+02:00 +[OUT | ls] 2025-06-27T14:48:14,042684232+02:00 +[OUT | ls] 2025-06-27T14:48:14,145958292+02:00 +[OUT | ls] 2025-06-27T14:48:14,249647477+02:00 +[OUT | ls] 2025-06-27T14:48:14,353048039+02:00 +[OUT | ls] 2025-06-27T14:48:14,455692549+02:00 +[OUT | ls] 2025-06-27T14:48:14,558584675+02:00 +[OUT | ls] 2025-06-27T14:48:14,661938135+02:00 +[OUT | ls] 2025-06-27T14:48:14,765297522+02:00 +[OUT | ls] 2025-06-27T14:48:14,868536489+02:00 +[OUT | ls] 2025-06-27T14:48:14,972135761+02:00 +[OUT | ls] 2025-06-27T14:48:15,075469866+02:00 +[OUT | ls] 2025-06-27T14:48:15,179240286+02:00 +[OUT | ls] 2025-06-27T14:48:15,282865577+02:00 +[OUT | ls] 2025-06-27T14:48:15,386501210+02:00 diff --git a/tests/command_execution/execute_command/whathappend.html b/tests/command_execution/execute_command/whathappend.html new file mode 100644 index 00000000..0451778c --- /dev/null +++ b/tests/command_execution/execute_command/whathappend.html @@ -0,0 +1,61 @@ + + + + + Bokeh Plot + + + + + +
+ + + + + \ No newline at end of file diff --git a/tests/command_execution/execute_command/whathappend.py b/tests/command_execution/execute_command/whathappend.py new file mode 100644 index 00000000..7b046a81 --- /dev/null +++ b/tests/command_execution/execute_command/whathappend.py @@ -0,0 +1,130 @@ +import datetime +from math import inf +import time +from bokeh.plotting import figure, show +import csv + +import numpy as np + +from bokeh.layouts import column +from bokeh.models import ColumnDataSource, RangeTool +from bokeh.plotting import figure, show +from bokeh.models import HoverTool + +demodict = { + "start_time":0, + "duration":8, + "command_name":"wafel", + "events":[(14,"wafel_output")] +} + + +import glob +print(glob.glob("./.commandlogging/*")) +l = sorted(glob.glob("./.commandlogging/*")) +latest = l[-1] +objects = [] +for x in glob.glob(latest+'/*'): + with open(x) as f: + header = f.readline() + header_values = f.readline() + obj = next(csv.DictReader([header,header_values])) + events = [] + data_line = f.readline().strip() + while data_line != "hookend" and data_line: + field = data_line.split(',') + events.append(field) + data_line = f.readline().strip() + obj["events"] = events + dur = f.readline() + if dur: + obj["duration"] = float(dur.strip()) * 1000 + else: + obj["duration"] = float(200000) * 1000 + + objects.append(obj) + +minimum = inf +maximum = -inf +for x in objects: + if float(x["hookstart"]) < minimum: + minimum = float(x["hookstart"]) + +for x in objects: + new_events = [] + for event in x["events"]: + new_events.append((datetime.datetime.fromtimestamp(float(event[0])),event[1],event[2])) + x["events"] = new_events + x["hookstart"] = datetime.datetime.fromtimestamp(float(x["hookstart"])) +objects = sorted(objects,key=lambda x: x["hookstart"]) + +_tools_to_show = 'box_zoom,pan,save,hover,resize,reset,tap,wheel_zoom' + +p = figure(height=300, width=800, tools="xpan,xwheel_zoom,reset", + x_axis_type="datetime", x_axis_location="above", window_axis="x", + background_fill_color="#efefef",) + +select = figure(title="Drag the middle and edges of the selection box to change the range above", + height=130, width=800, + x_axis_type="datetime", y_axis_type=None, + tools="", toolbar_location=None, background_fill_color="#efefef") +select.x_range.range_padding = 0 +select.x_range.bounds = "auto" + +range_tool = RangeTool(x_range=p.x_range, start_gesture="pan") +range_tool.overlay.fill_color = "navy" +range_tool.overlay.fill_alpha = 0.2 + + +for idx, obj in enumerate(objects): + s = ColumnDataSource( + data= dict( + x=[obj["hookstart"]], + y=[idx], + location=[obj["location"]], + a=["1"] + ) + ) + print([float(obj["duration"])]) + bl = p.block(source=s, width=float(obj["duration"]), height=1,fill_alpha=0.5) + + + select.block(x=obj["hookstart"], y=idx, width=float(obj["duration"]), height=1, + fill_alpha=0.5, + ) + TOOLTIPS = [ + ("location", "@location"), + ("a","@a") + ] + bl_hover = HoverTool(renderers=[bl], + tooltips=TOOLTIPS) + p.add_tools(bl_hover) + events = [] + if obj["events"]: + for a in obj["events"]: + source = ColumnDataSource(data=dict( + x=[a[0]], + y=[idx+0.5], + desc=[a[1] + a[2]], + )) + gr = p.scatter(source=source, + size=10, color="red", alpha=0.5) + TOOLTIPS = [ + ("data", "@desc"), + ] + + g1_hover = HoverTool(renderers=[gr], + tooltips=TOOLTIPS) + p.add_tools(g1_hover) + + + events.append(a[0]) + select.scatter(events, idx+0.5, + size=4, color="olive", alpha=0.5) + + +select.ygrid.grid_line_color = None +select.add_tools(range_tool) + + +show(column(p, select)) \ No newline at end of file diff --git a/tests/command_execution/requirements.txt b/tests/command_execution/requirements.txt new file mode 100644 index 00000000..cd19233f --- /dev/null +++ b/tests/command_execution/requirements.txt @@ -0,0 +1,2 @@ +bokeh +psutil \ No newline at end of file From a5e97a59a90bca05cfc9d1c608663d12d8f2d258 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Tue, 1 Jul 2025 11:28:51 +0200 Subject: [PATCH 62/71] implemented the closing of pipes and added better naming --- .gitignore | 1 + benchkit/shell/command_execution/execute.py | 2 +- .../command_execution/io/hooks/basic_hooks.py | 16 ++-- .../execution_debugging/debugging_hook.py | 2 +- .../shell/command_execution/io/hooks/hook.py | 83 ++++++++++--------- .../execute_command/other_tests.py | 9 +- 6 files changed, 65 insertions(+), 48 deletions(-) diff --git a/.gitignore b/.gitignore index c1aa91dc..8d3abfe5 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ venv/ .DS_Store results/ benchkit.egg-info/ +.commandlogging/ \ No newline at end of file diff --git a/benchkit/shell/command_execution/execute.py b/benchkit/shell/command_execution/execute.py index 54657b7f..d2caacf7 100755 --- a/benchkit/shell/command_execution/execute.py +++ b/benchkit/shell/command_execution/execute.py @@ -24,7 +24,7 @@ from benchkit.shell.command_execution.io.output import popen_get_output -DEBUG = False +DEBUG = True def execute_command( # needed for starting the command diff --git a/benchkit/shell/command_execution/io/hooks/basic_hooks.py b/benchkit/shell/command_execution/io/hooks/basic_hooks.py index 2d44c9c6..cae1f580 100644 --- a/benchkit/shell/command_execution/io/hooks/basic_hooks.py +++ b/benchkit/shell/command_execution/io/hooks/basic_hooks.py @@ -4,7 +4,7 @@ from __future__ import annotations # Otherwise Queue comlains about typing from multiprocessing import Queue -from typing import Any +from typing import Any, Optional from pathlib import Path from benchkit.shell.command_execution.io.hooks.hook import ( @@ -23,7 +23,7 @@ def create_voiding_result_hook() -> IOResultHook: def hook_function( - input_object: ReadableIOStream, _: WritableIOStream, result_queue: Queue[Any] + input_object: ReadableIOStream, out: WritableIOStream, result_queue: Queue[Any] ): # we do not write to the out stream thus this is "voiding" outlines: bytes = b"" @@ -65,7 +65,7 @@ def hook_function( -def create_stream_line_logger_hook(formating_string: str) -> IOReaderHook: +def create_stream_line_logger_hook(formating_string: str, name: Optional[str] = None) -> IOReaderHook: def hook_function_line(input_object: ReadableIOStream): byt = input_object.read_line() while byt: @@ -74,8 +74,8 @@ def hook_function_line(input_object: ReadableIOStream): end="", ) byt = input_object.read_line() - - return IOReaderHook(hook_function_line) + print(f'name:{name}') + return IOReaderHook(hook_function_line,name=name) # TODO: Voiding can be done be done better but this will do for now @@ -88,10 +88,10 @@ def void_input(input_object: ReadableIOStream, _: WritableIOStream): outline = input_object.read(10) -def logger_line_hook(outformat: str, errformat: str): +def logger_line_hook(outformat: str, errformat: str,nameout: Optional[str] = None,nameerr: Optional[str] = None): return OutputHook( - create_stream_line_logger_hook(outformat), - create_stream_line_logger_hook(errformat), + create_stream_line_logger_hook(outformat,nameout), + create_stream_line_logger_hook(errformat,nameerr), ) diff --git a/benchkit/shell/command_execution/io/hooks/execution_debugging/debugging_hook.py b/benchkit/shell/command_execution/io/hooks/execution_debugging/debugging_hook.py index 49286156..d5fedb1e 100644 --- a/benchkit/shell/command_execution/io/hooks/execution_debugging/debugging_hook.py +++ b/benchkit/shell/command_execution/io/hooks/execution_debugging/debugging_hook.py @@ -33,7 +33,7 @@ def hook_function(input_stream:ReadableIOStream,output_stream:WritableIOStream) output_file.write('hookend\n'.encode("utf-8")) output_file.write(f'{time_accurate() - start_time}'.encode("utf-8")) - return IOWriterHook(hook_function) + return IOWriterHook(hook_function,"debugger_hook" + hooklocation) def add_logging_hooks(ordered_input_hooks:Optional[List[IOHook]], ordered_output_hooks:Optional[List[OutputHook]],command:List[str]): new_ordered_input_hooks:List[IOHook] = [] diff --git a/benchkit/shell/command_execution/io/hooks/hook.py b/benchkit/shell/command_execution/io/hooks/hook.py index 04074ed1..db09e769 100644 --- a/benchkit/shell/command_execution/io/hooks/hook.py +++ b/benchkit/shell/command_execution/io/hooks/hook.py @@ -4,8 +4,8 @@ from __future__ import annotations # Otherwise Queue comlains about typing from abc import ABC, abstractmethod -from multiprocessing import Process, Queue -from threading import Thread +from threading import Lock, Thread +from queue import Queue from typing import Any, Callable, Optional from benchkit.shell.command_execution.io.stream import ( @@ -27,6 +27,22 @@ def __init__(self,name:str): def start_hook_function(self, input_stream: ReadableIOStream) -> None: pass + def _start_thread_and_cleanup(self,target,args,name,to_close): + def _wrap(target,args,to_close:list[WritableIOStream]): + target(*args) + for stream in to_close: + stream.end_writing() + + p = Thread( + target=_wrap, + args=(target,args,to_close), + name=name, + ) + + p.start() + + + def get_outgoing_io_stream(self) -> ReadableIOStream: return self._output @@ -42,15 +58,8 @@ def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream], Non super().__init__(name) def start_hook_function(self, input_stream: ReadableIOStream) -> None: - # A process is spawned to keep the hookfunction running on the stream - p = Thread( - target=self.hook_function, - args=(input_stream, self._output), - name=self.name, - ) - p.start() - - # Close the file descriptor of the main thread, the one from the process will still be alive + # A thread is spawned to keep the hookfunction running on the stream + self._start_thread_and_cleanup(self.hook_function,(input_stream, self._output),self.name,[self._output]) class IOReaderHook(IOHook): @@ -74,27 +83,17 @@ def __pas_along_original_stream( def start_hook_function(self, input_stream: ReadableIOStream) -> None: - # A process is spawned to duplicate the input stream for the reading function - duplication_process = Thread( - target=self.__pas_along_original_stream, - args=( + # A thread is spawned to duplicate the input stream for the reading function + self._start_thread_and_cleanup(self.__pas_along_original_stream,( input_stream, self._output, self._stream_duplicate, - ), - name=self.name + " pasalong", - ) + ),self.name + " pasalong",[self._output,self._stream_duplicate]) - # A process is spawned to keep the hookfunction running on the stream - reader_hook_process = Thread( - target=self.hook_function, - args=(self._stream_duplicate,), - name=self.name, - ) - - duplication_process.start() - reader_hook_process.start() - # Close the file descriptor of the main thread, the one from the process will still be alive + # A thread is spawned to keep the hookfunction running on the duplicate stream + self._start_thread_and_cleanup(self.hook_function,( + self._stream_duplicate, + ),self.name,[]) class IOResultHook(IOHook): @@ -110,14 +109,10 @@ def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream, Queu super().__init__(name) def start_hook_function(self, input_stream: ReadableIOStream) -> None: - p = Thread( - target=self.hook_function, - args=(input_stream, self._output, self.__queue), - name=self.name, - ) - p.start() - # Close the file descriptor of the main thread, the one from the process will still be alive + self._start_thread_and_cleanup(self.hook_function, + (input_stream, self._output, self.__queue) + ,self.name,[self._output]) def get_result(self) -> Any: return self.__queue.get() @@ -144,14 +139,28 @@ def attatch(self, output: Output) -> Output: class MergeErrToOut(OutputHook): def __init__(self) -> None: self.std_out = PipeIOStream() - self._std_err_hook:IOWriterHook = IOWriterHook(self.__mergehookfunction) - self._std_out_hook:IOWriterHook = IOWriterHook(self.__mergehookfunction) + # a lock for the out pipe only if released can we clean it up + self.lock = Lock() + self.lock.acquire() + + self._std_err_hook:IOWriterHook = IOWriterHook(self.__mergehookfunction,name="merge-hook-err") + self._std_out_hook:IOWriterHook = IOWriterHook(self.__mergehookfunction_close,name="merge-hook-out") def __mergehookfunction(self, input_object: ReadableIOStream, _: WritableIOStream): outline = input_object.read_line() while outline: self.std_out.write(outline) outline = input_object.read_line() + # other thread can clean up the file now + self.lock.release() + + def __mergehookfunction_close(self, input_object: ReadableIOStream, _: WritableIOStream): + outline = input_object.read_line() + while outline: + self.std_out.write(outline) + outline = input_object.read_line() + self.lock.acquire() + self.std_out.end_writing() def attatch(self, output: Output) -> Output: self._std_err_hook.start_hook_function(output.std_out) diff --git a/tests/command_execution/execute_command/other_tests.py b/tests/command_execution/execute_command/other_tests.py index fdda5e62..dc328930 100644 --- a/tests/command_execution/execute_command/other_tests.py +++ b/tests/command_execution/execute_command/other_tests.py @@ -7,6 +7,8 @@ from pathlib import Path import shlex import subprocess +import sys +import threading from time import sleep from typing import Any @@ -26,6 +28,8 @@ def shell_test(): log_ls = logger_line_hook( f"\033[34m[OUT | ls]\033[0m" + " {}", f"\033[91m[ERR | ls]\033[0m" + " {}", + "---logger_hook_out---", + "---logger_hook_err---" ) outobj, outhook = std_out_result_void_err() @@ -37,7 +41,7 @@ def shell_test(): ordered_output_hooks=[ merge, log_ls, - # outhook, + outhook, void_hook(), ] ) @@ -45,6 +49,9 @@ def shell_test(): ls_command.get_return_code() except: sleep(5) + for thread in threading.enumerate(): + print(thread.name) + # log_ls = logger_line_hook( From 55de5ee35de663f70bdce699605c0afff8dbba0b Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Thu, 3 Jul 2025 19:07:18 +0200 Subject: [PATCH 63/71] thread fixes --- benchkit/shell/command_execution/command_process.py | 1 + benchkit/shell/command_execution/execute.py | 4 ++-- .../shell/command_execution/io/hooks/basic_hooks.py | 1 - benchkit/shell/command_execution/io/stream.py | 12 ++++++++++-- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/benchkit/shell/command_execution/command_process.py b/benchkit/shell/command_execution/command_process.py index 039464a3..1fa37869 100644 --- a/benchkit/shell/command_execution/command_process.py +++ b/benchkit/shell/command_execution/command_process.py @@ -61,6 +61,7 @@ def __wait_func( ) else: queue.put((retcode, None)) + except TimeoutExpired as exc: # TODO: we can add some form of logging here to warn the user if something went wrong subprocess.terminate() diff --git a/benchkit/shell/command_execution/execute.py b/benchkit/shell/command_execution/execute.py index d2caacf7..bfca5893 100755 --- a/benchkit/shell/command_execution/execute.py +++ b/benchkit/shell/command_execution/execute.py @@ -24,7 +24,7 @@ from benchkit.shell.command_execution.io.output import popen_get_output -DEBUG = True +DEBUG = False def execute_command( # needed for starting the command @@ -75,7 +75,7 @@ def pasalong(input_stream: ReadableIOStream, _: WritableIOStream) -> None: process.stdin.write(outline) process.stdin.flush() outline = input_stream.read(1) - # process.stdin.close() + process.stdin.close() if std_input is not None: hook = IOWriterHook(pasalong) diff --git a/benchkit/shell/command_execution/io/hooks/basic_hooks.py b/benchkit/shell/command_execution/io/hooks/basic_hooks.py index cae1f580..e31f5d43 100644 --- a/benchkit/shell/command_execution/io/hooks/basic_hooks.py +++ b/benchkit/shell/command_execution/io/hooks/basic_hooks.py @@ -74,7 +74,6 @@ def hook_function_line(input_object: ReadableIOStream): end="", ) byt = input_object.read_line() - print(f'name:{name}') return IOReaderHook(hook_function_line,name=name) diff --git a/benchkit/shell/command_execution/io/stream.py b/benchkit/shell/command_execution/io/stream.py index d0c87939..9facb5e8 100644 --- a/benchkit/shell/command_execution/io/stream.py +++ b/benchkit/shell/command_execution/io/stream.py @@ -54,13 +54,21 @@ def read_line(self) -> bytes: class PopenIOStream(ReadableIOStream): """Class that can interact with the stdout type objects given by Popen""" def __init__(self, stream: IO[bytes]): + self.__done=False self.__stream = stream super().__init__() def _read_bytes(self, amount_of_bytes: int) -> bytes: + if self.__done: + return b'' if self.__stream: - return self.__stream.read(amount_of_bytes) - return b"s" + r = self.__stream.read(amount_of_bytes) + if r: + return r + self.__done = True + self.__stream.close() + return r + return b"" class StringIOStream(ReadableIOStream): From caab225778f1cd5e98fbc3e30e436827b0a61f46 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Thu, 3 Jul 2025 19:12:13 +0200 Subject: [PATCH 64/71] remove logs --- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../y._std_err_hook.name-0-err | 4 -- .../y._std_out_hook.name-0-out | 4 -- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../y._std_err_hook.name-0-err | 4 -- .../y._std_err_hook.name-1-err | 4 -- .../y._std_err_hook.name-2-err | 4 -- .../y._std_out_hook.name-0-out | 24 ----------- .../y._std_out_hook.name-1-out | 24 ----------- .../y._std_out_hook.name-2-out | 4 -- .../__mergehookfunction-0-err | 4 -- .../__mergehookfunction-0-out | 24 ----------- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-1-err | 4 -- .../hook_function_line-1-out | 24 ----------- .../void_input-2-err | 4 -- .../void_input-2-out | 4 -- .../__mergehookfunction-0-err | 4 -- .../__mergehookfunction-0-out | 24 ----------- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-1-err | 2 - .../hook_function_line-1-out | 22 ---------- .../void_input-2-err | 2 - .../void_input-2-out | 2 - .../__mergehookfunction-0-err | 4 -- .../__mergehookfunction-0-out | 24 ----------- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-1-err | 4 -- .../hook_function_line-1-out | 24 ----------- .../void_input-2-err | 4 -- .../void_input-2-out | 4 -- .../__mergehookfunction-0-err | 4 -- .../__mergehookfunction-0-out | 24 ----------- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-1-err | 2 - .../hook_function_line-1-out | 22 ---------- .../void_input-2-err | 2 - .../void_input-2-out | 2 - .../__mergehookfunction-0-err | 4 -- .../__mergehookfunction-0-out | 24 ----------- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-1-err | 2 - .../hook_function_line-1-out | 22 ---------- .../void_input-2-err | 2 - .../void_input-2-out | 2 - .../__mergehookfunction-0-err | 4 -- .../__mergehookfunction-0-out | 24 ----------- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-1-err | 2 - .../hook_function_line-1-out | 22 ---------- .../void_input-2-err | 2 - .../void_input-2-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../void_input-0-err | 4 -- .../void_input-0-out | 4 -- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 4 -- .../hook_function_line-0-out | 4 -- .../void_input-1-err | 4 -- .../void_input-1-out | 4 -- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../__mergehookfunction-0-err | 4 -- .../__mergehookfunction-0-out | 24 ----------- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function-1-out | 4 -- .../void_input-1-err | 4 -- .../void_input-2-err | 4 -- .../void_input-2-out | 4 -- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 22 ---------- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 43 ------------------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 41 ------------------ .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 4 -- .../hook_function_line-0-out | 24 ----------- .../void_input-1-err | 4 -- .../void_input-1-out | 4 -- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 2 - .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_initial_input | 4 -- .../after_initial_input | 4 -- .../after_comand-0-out | 2 - .../after_initial_input | 4 -- .../after_comand-0-err | 2 - .../after_comand-0-out | 2 - .../after_initial_input | 4 -- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 2 - .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 2 - .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 2 - .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-out | 5 --- .../after_initial_input | 4 -- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 2 - .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-out | 2 - .../after_initial_input | 4 -- .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 2 - .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 2 - .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 12 ------ .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-err | 2 - .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-out | 22 ---------- .../hook_function_line-1-err | 2 - .../hook_function_line-1-out | 22 ---------- .../void_input-2-err | 2 - .../void_input-2-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 2 - .../after_comand-0-out | 22 ---------- .../after_initial_input | 4 -- .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 2 - .../after_comand-0-out | 22 ---------- .../after_initial_input | 4 -- .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - .../after_comand-0-err | 4 -- .../after_comand-0-out | 24 ----------- .../after_initial_input | 4 -- .../hook_function_line-0-out | 22 ---------- .../void_input-1-err | 2 - .../void_input-1-out | 2 - 321 files changed, 2751 deletions(-) delete mode 100644 tests/command_execution/.commandlogging/17510244742838077109549750444/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510244742838077109549750444/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510244742838077109549750444/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510244742838077109549750444/y._std_err_hook.name-0-err delete mode 100644 tests/command_execution/.commandlogging/17510244742838077109549750444/y._std_out_hook.name-0-out delete mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-0-err delete mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-1-err delete mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-2-err delete mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-0-out delete mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-1-out delete mode 100644 tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-2-out delete mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/__mergehookfunction-0-err delete mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/__mergehookfunction-0-out delete mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/hook_function_line-1-err delete mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/hook_function_line-1-out delete mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/void_input-2-err delete mode 100644 tests/command_execution/.commandlogging/17510248382308677391901912860/void_input-2-out delete mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/__mergehookfunction-0-err delete mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/__mergehookfunction-0-out delete mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/hook_function_line-1-err delete mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/hook_function_line-1-out delete mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/void_input-2-err delete mode 100644 tests/command_execution/.commandlogging/17510249151932072896301725570/void_input-2-out delete mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/__mergehookfunction-0-err delete mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/__mergehookfunction-0-out delete mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/hook_function_line-1-err delete mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/hook_function_line-1-out delete mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/void_input-2-err delete mode 100644 tests/command_execution/.commandlogging/17510249732896639553809809502/void_input-2-out delete mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/__mergehookfunction-0-err delete mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/__mergehookfunction-0-out delete mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/hook_function_line-1-err delete mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/hook_function_line-1-out delete mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/void_input-2-err delete mode 100644 tests/command_execution/.commandlogging/17510250016515771363671292394/void_input-2-out delete mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/__mergehookfunction-0-err delete mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/__mergehookfunction-0-out delete mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/hook_function_line-1-err delete mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/hook_function_line-1-out delete mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/void_input-2-err delete mode 100644 tests/command_execution/.commandlogging/17510250452178389148943459873/void_input-2-out delete mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/__mergehookfunction-0-err delete mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/__mergehookfunction-0-out delete mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/hook_function_line-1-err delete mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/hook_function_line-1-out delete mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/void_input-2-err delete mode 100644 tests/command_execution/.commandlogging/17510251636050157590363940597/void_input-2-out delete mode 100644 tests/command_execution/.commandlogging/17510251816903650858575506288/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510251816903650858575506288/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510251816903650858575506288/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510251816903650858575506288/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510251816903650858575506288/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510251816903650858575506288/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510251816903650858575506288/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510251998639835173709686216/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510251998639835173709686216/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510251998639835173709686216/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510251998639835173709686216/void_input-0-err delete mode 100644 tests/command_execution/.commandlogging/17510251998639835173709686216/void_input-0-out delete mode 100644 tests/command_execution/.commandlogging/1751025255216489808043222085/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/1751025255216489808043222085/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/1751025255216489808043222085/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/1751025255216489808043222085/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/1751025255216489808043222085/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/1751025255216489808043222085/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/1751025255216489808043222085/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510252836442209649289205695/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510252836442209649289205695/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510252836442209649289205695/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510252836442209649289205695/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510252836442209649289205695/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510252836442209649289205695/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510252836442209649289205695/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510254007104987491064385613/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510254007104987491064385613/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510254007104987491064385613/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510254007104987491064385613/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510254007104987491064385613/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510254007104987491064385613/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510254007104987491064385613/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510254272071111963399063064/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510254272071111963399063064/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510254272071111963399063064/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510254272071111963399063064/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510254272071111963399063064/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510254272071111963399063064/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510254272071111963399063064/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/1751025471359917208436063578/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/1751025471359917208436063578/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/1751025471359917208436063578/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/1751025472359917208436063578/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/1751025472359917208436063578/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/1751025472359917208436063578/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/1751025472359917208436063578/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/__mergehookfunction-0-err delete mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/__mergehookfunction-0-out delete mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/hook_function-1-out delete mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-2-err delete mode 100644 tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-2-out delete mode 100644 tests/command_execution/.commandlogging/17510255276025331534543549503/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510255276025331534543549503/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510255276025331534543549503/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510255276025331534543549503/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510255276025331534543549503/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510256027664721227509456362/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510256027664721227509456362/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510256027664721227509456362/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510256027664721227509456362/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510256027664721227509456362/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510256027664721227509456362/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510256027664721227509456362/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510256224287177846385816737/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510256224287177846385816737/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510256224287177846385816737/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510256224287177846385816737/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510256224287177846385816737/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510256224287177846385816737/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510256224287177846385816737/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510258395706702362975748128/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510258395706702362975748128/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510258395706702362975748128/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510258415706702362975748128/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510258415706702362975748128/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510258415706702362975748128/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510258415706702362975748128/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510262308517412947345727383/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510262308517412947345727383/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510262308517412947345727383/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510262308517412947345727383/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510262308517412947345727383/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510262308517412947345727383/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510262308517412947345727383/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510262584556859485228340177/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510262584556859485228340177/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510262584556859485228340177/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510262584556859485228340177/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510262584556859485228340177/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510262584556859485228340177/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510262584556859485228340177/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510265094798630923828201528/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510265094798630923828201528/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510265114127274637998895824/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/1751026518371415368267621105/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/1751026518371415368267621105/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/1751026559268498061844594090/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/1751026559268498061844594090/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/1751026559268498061844594090/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510265928765007803655267033/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510265928765007803655267033/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510265928765007803655267033/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510265928765007803655267033/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510265928765007803655267033/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510265928765007803655267033/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510265928765007803655267033/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/1751026607815276382744962604/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/1751026607815276382744962604/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/1751026607815276382744962604/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/1751026607815276382744962604/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/1751026607815276382744962604/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/1751026607815276382744962604/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/1751026607815276382744962604/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510266517757071367764566299/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510266517757071367764566299/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510266517757071367764566299/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510266517757071367764566299/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510266517757071367764566299/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510266517757071367764566299/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510266517757071367764566299/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510266883393410295416928852/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510266883393410295416928852/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510266955637139366934248799/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510266955637139366934248799/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510266955637139366934248799/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510266955637139366934248799/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510266955637139366934248799/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510266955637139366934248799/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510266955637139366934248799/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510267507745254711084627794/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510267507745254711084627794/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510267636351896796693948683/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510267636351896796693948683/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510267636351896796693948683/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510267636351896796693948683/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510267636351896796693948683/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510267636351896796693948683/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510267636351896796693948683/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/1751026779829708360205953396/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/1751026779829708360205953396/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/1751026779829708360205953396/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/1751026779829708360205953396/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/1751026779829708360205953396/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/1751026779829708360205953396/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/1751026779829708360205953396/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510268714191413081950033424/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510268714191413081950033424/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510268714191413081950033424/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510268714191413081950033424/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510268714191413081950033424/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510268714191413081950033424/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510268714191413081950033424/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510269497858991073078199574/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510269497858991073078199574/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510269497858991073078199574/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510269497858991073078199574/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510269497858991073078199574/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510269497858991073078199574/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510269497858991073078199574/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510269733222053283261616000/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510269733222053283261616000/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510269733222053283261616000/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510269733222053283261616000/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510269733222053283261616000/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510269733222053283261616000/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510269733222053283261616000/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510270417459227282026739641/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510270417459227282026739641/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510270417459227282026739641/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510270417459227282026739641/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510270417459227282026739641/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510270417459227282026739641/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510270417459227282026739641/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510270583821103139432107070/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510270583821103139432107070/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510270583821103139432107070/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510270583821103139432107070/hook_function_line-0-err delete mode 100644 tests/command_execution/.commandlogging/17510270583821103139432107070/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510270583821103139432107070/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510270583821103139432107070/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510275061222936710834884607/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510275061222936710834884607/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510275061222936710834884607/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-1-err delete mode 100644 tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-1-out delete mode 100644 tests/command_execution/.commandlogging/17510275061222936710834884607/void_input-2-err delete mode 100644 tests/command_execution/.commandlogging/17510275061222936710834884607/void_input-2-out delete mode 100644 tests/command_execution/.commandlogging/17510275194239943051475391385/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510275194239943051475391385/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510275194239943051475391385/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510275194239943051475391385/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510275194239943051475391385/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510275194239943051475391385/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510275384121131127726226779/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510275384121131127726226779/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510275384121131127726226779/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510275384121131127726226779/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510275384121131127726226779/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510275384121131127726226779/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/1751027691560915493581199542/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/1751027691560915493581199542/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/1751027691560915493581199542/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/1751027691560915493581199542/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/1751027691560915493581199542/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/1751027691560915493581199542/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510277949065025034801274345/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510277949065025034801274345/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510277949065025034801274345/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510277949065025034801274345/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510277949065025034801274345/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510277949065025034801274345/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510278265146615098218632368/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510278265146615098218632368/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510278265146615098218632368/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510278265146615098218632368/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510278265146615098218632368/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510278265146615098218632368/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510278435495815789182149599/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510278435495815789182149599/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510278435495815789182149599/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510278435495815789182149599/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510278435495815789182149599/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510278435495815789182149599/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510278954603509299118523721/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510278954603509299118523721/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510278954603509299118523721/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510278954603509299118523721/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510278954603509299118523721/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510278954603509299118523721/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510279111824369709155032513/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510279111824369709155032513/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510279111824369709155032513/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510279111824369709155032513/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510279111824369709155032513/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510279111824369709155032513/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510281386106517343193566288/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510281386106517343193566288/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510281386106517343193566288/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510281386106517343193566288/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510281386106517343193566288/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510281386106517343193566288/void_input-1-out delete mode 100644 tests/command_execution/.commandlogging/17510284145298888010555680136/after_comand-0-err delete mode 100644 tests/command_execution/.commandlogging/17510284145298888010555680136/after_comand-0-out delete mode 100644 tests/command_execution/.commandlogging/17510284145298888010555680136/after_initial_input delete mode 100644 tests/command_execution/.commandlogging/17510284145298888010555680136/hook_function_line-0-out delete mode 100644 tests/command_execution/.commandlogging/17510284145298888010555680136/void_input-1-err delete mode 100644 tests/command_execution/.commandlogging/17510284145298888010555680136/void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510244742838077109549750444/after_comand-0-err b/tests/command_execution/.commandlogging/17510244742838077109549750444/after_comand-0-err deleted file mode 100644 index 2dcb89be..00000000 --- a/tests/command_execution/.commandlogging/17510244742838077109549750444/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024474.5330513,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0546274185180664 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510244742838077109549750444/after_comand-0-out b/tests/command_execution/.commandlogging/17510244742838077109549750444/after_comand-0-out deleted file mode 100644 index ee886e9f..00000000 --- a/tests/command_execution/.commandlogging/17510244742838077109549750444/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751024474.5328732,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751024474.6354785,2025-06-27T13:41:14,532452952+02:00 -1751024474.7381787,2025-06-27T13:41:14,635261766+02:00 -1751024474.8409607,2025-06-27T13:41:14,737938495+02:00 -1751024474.9435253,2025-06-27T13:41:14,840786919+02:00 -1751024474.9435563,2025-06-27T13:41:14,943392357+02:00 -1751024475.149961,2025-06-27T13:41:15,046616199+02:00 -1751024475.252764,2025-06-27T13:41:15,149753297+02:00 -1751024475.3561807,2025-06-27T13:41:15,252670632+02:00 -1751024475.4600303,2025-06-27T13:41:15,355981869+02:00 -1751024475.46008,2025-06-27T13:41:15,459806522+02:00 -1751024475.664867,2025-06-27T13:41:15,562314262+02:00 -1751024475.7675586,2025-06-27T13:41:15,664691992+02:00 -1751024475.87035,2025-06-27T13:41:15,767411625+02:00 -1751024475.972923,2025-06-27T13:41:15,870157915+02:00 -1751024475.9729967,2025-06-27T13:41:15,972787369+02:00 -1751024476.1782155,2025-06-27T13:41:16,075502175+02:00 -1751024476.2807133,2025-06-27T13:41:16,177912206+02:00 -1751024476.3831794,2025-06-27T13:41:16,280640466+02:00 -1751024476.4861784,2025-06-27T13:41:16,383105067+02:00 -1751024476.4862158,2025-06-27T13:41:16,486031958+02:00 -hookend -2.0548436641693115 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510244742838077109549750444/after_initial_input b/tests/command_execution/.commandlogging/17510244742838077109549750444/after_initial_input deleted file mode 100644 index 48a066b2..00000000 --- a/tests/command_execution/.commandlogging/17510244742838077109549750444/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024474.5323815,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0004372596740722656 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510244742838077109549750444/y._std_err_hook.name-0-err b/tests/command_execution/.commandlogging/17510244742838077109549750444/y._std_err_hook.name-0-err deleted file mode 100644 index 31bef375..00000000 --- a/tests/command_execution/.commandlogging/17510244742838077109549750444/y._std_err_hook.name-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024474.5338032,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,y._std_err_hook.name-0-err -hookend -2.055327892303467 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510244742838077109549750444/y._std_out_hook.name-0-out b/tests/command_execution/.commandlogging/17510244742838077109549750444/y._std_out_hook.name-0-out deleted file mode 100644 index 5002d133..00000000 --- a/tests/command_execution/.commandlogging/17510244742838077109549750444/y._std_out_hook.name-0-out +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024474.5339541,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,y._std_out_hook.name-0-out -hookend -2.0552501678466797 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/after_comand-0-err b/tests/command_execution/.commandlogging/17510246892025837768399725396/after_comand-0-err deleted file mode 100644 index 36c38de4..00000000 --- a/tests/command_execution/.commandlogging/17510246892025837768399725396/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024689.5764687,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.063610076904297 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/after_comand-0-out b/tests/command_execution/.commandlogging/17510246892025837768399725396/after_comand-0-out deleted file mode 100644 index a12cf593..00000000 --- a/tests/command_execution/.commandlogging/17510246892025837768399725396/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751024689.5761518,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751024689.679637,2025-06-27T13:44:49,575880143+02:00 -1751024689.7825742,2025-06-27T13:44:49,679412187+02:00 -1751024689.8855722,2025-06-27T13:44:49,782418312+02:00 -1751024689.989035,2025-06-27T13:44:49,885436529+02:00 -1751024689.9890847,2025-06-27T13:44:49,988854126+02:00 -1751024690.1954749,2025-06-27T13:44:50,092034914+02:00 -1751024690.2985873,2025-06-27T13:44:50,195317278+02:00 -1751024690.4013963,2025-06-27T13:44:50,298416167+02:00 -1751024690.5046163,2025-06-27T13:44:50,401240902+02:00 -1751024690.5046685,2025-06-27T13:44:50,504427455+02:00 -1751024690.7099872,2025-06-27T13:44:50,606938731+02:00 -1751024690.8135684,2025-06-27T13:44:50,709789555+02:00 -1751024690.9167044,2025-06-27T13:44:50,813398642+02:00 -1751024691.0200062,2025-06-27T13:44:50,916521704+02:00 -1751024691.0200546,2025-06-27T13:44:51,019816122+02:00 -1751024691.2272513,2025-06-27T13:44:51,123131447+02:00 -1751024691.3315399,2025-06-27T13:44:51,227017558+02:00 -1751024691.4355457,2025-06-27T13:44:51,331324848+02:00 -1751024691.5384028,2025-06-27T13:44:51,435357696+02:00 -1751024691.5384562,2025-06-27T13:44:51,538287634+02:00 -hookend -2.0639257431030273 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/after_initial_input b/tests/command_execution/.commandlogging/17510246892025837768399725396/after_initial_input deleted file mode 100644 index d388e990..00000000 --- a/tests/command_execution/.commandlogging/17510246892025837768399725396/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024689.5756447,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0004024505615234375 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-0-err b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-0-err deleted file mode 100644 index a90372a6..00000000 --- a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024689.577334,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,y._std_err_hook.name-0-err -hookend -0.0002932548522949219 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-1-err b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-1-err deleted file mode 100644 index 0290013f..00000000 --- a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-1-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024689.5790057,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,y._std_err_hook.name-1-err -hookend -2.064610719680786 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-2-err b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-2-err deleted file mode 100644 index bbe5b913..00000000 --- a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_err_hook.name-2-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024689.579658,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,y._std_err_hook.name-2-err -hookend -2.065042734146118 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-0-out b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-0-out deleted file mode 100644 index a3601574..00000000 --- a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751024689.57741,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,y._std_out_hook.name-0-out -1751024689.6798575,2025-06-27T13:44:49,575880143+02:00 -1751024689.7828503,2025-06-27T13:44:49,679412187+02:00 -1751024689.8857782,2025-06-27T13:44:49,782418312+02:00 -1751024689.9892328,2025-06-27T13:44:49,885436529+02:00 -1751024689.9892628,2025-06-27T13:44:49,988854126+02:00 -1751024690.1956754,2025-06-27T13:44:50,092034914+02:00 -1751024690.2988915,2025-06-27T13:44:50,195317278+02:00 -1751024690.401554,2025-06-27T13:44:50,298416167+02:00 -1751024690.5049016,2025-06-27T13:44:50,401240902+02:00 -1751024690.5049715,2025-06-27T13:44:50,504427455+02:00 -1751024690.7102947,2025-06-27T13:44:50,606938731+02:00 -1751024690.8139286,2025-06-27T13:44:50,709789555+02:00 -1751024690.9169998,2025-06-27T13:44:50,813398642+02:00 -1751024691.0203342,2025-06-27T13:44:50,916521704+02:00 -1751024691.0203788,2025-06-27T13:44:51,019816122+02:00 -1751024691.227563,2025-06-27T13:44:51,123131447+02:00 -1751024691.332059,2025-06-27T13:44:51,227017558+02:00 -1751024691.4358869,2025-06-27T13:44:51,331324848+02:00 -1751024691.538645,2025-06-27T13:44:51,435357696+02:00 -1751024691.5386834,2025-06-27T13:44:51,538287634+02:00 -hookend -2.0643975734710693 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-1-out b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-1-out deleted file mode 100644 index 68632642..00000000 --- a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-1-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751024689.5789895,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,y._std_out_hook.name-1-out -1751024689.6801922,2025-06-27T13:44:49,575880143+02:00 -1751024689.7831109,2025-06-27T13:44:49,679412187+02:00 -1751024689.8859928,2025-06-27T13:44:49,782418312+02:00 -1751024689.989447,2025-06-27T13:44:49,885436529+02:00 -1751024689.9895043,2025-06-27T13:44:49,988854126+02:00 -1751024690.1959798,2025-06-27T13:44:50,092034914+02:00 -1751024690.299146,2025-06-27T13:44:50,195317278+02:00 -1751024690.4018497,2025-06-27T13:44:50,298416167+02:00 -1751024690.505171,2025-06-27T13:44:50,401240902+02:00 -1751024690.5052073,2025-06-27T13:44:50,504427455+02:00 -1751024690.7105687,2025-06-27T13:44:50,606938731+02:00 -1751024690.8141503,2025-06-27T13:44:50,709789555+02:00 -1751024690.917231,2025-06-27T13:44:50,813398642+02:00 -1751024691.0206523,2025-06-27T13:44:50,916521704+02:00 -1751024691.020693,2025-06-27T13:44:51,019816122+02:00 -1751024691.2278674,2025-06-27T13:44:51,123131447+02:00 -1751024691.3323565,2025-06-27T13:44:51,227017558+02:00 -1751024691.4361537,2025-06-27T13:44:51,331324848+02:00 -1751024691.5388362,2025-06-27T13:44:51,435357696+02:00 -1751024691.5388982,2025-06-27T13:44:51,538287634+02:00 -hookend -2.06404709815979 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-2-out b/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-2-out deleted file mode 100644 index d7158ce4..00000000 --- a/tests/command_execution/.commandlogging/17510246892025837768399725396/y._std_out_hook.name-2-out +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024689.5798159,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,y._std_out_hook.name-2-out -hookend -2.065005302429199 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/__mergehookfunction-0-err b/tests/command_execution/.commandlogging/17510248382308677391901912860/__mergehookfunction-0-err deleted file mode 100644 index 6851db51..00000000 --- a/tests/command_execution/.commandlogging/17510248382308677391901912860/__mergehookfunction-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024838.129747,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-err -hookend -0.0003368854522705078 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/__mergehookfunction-0-out b/tests/command_execution/.commandlogging/17510248382308677391901912860/__mergehookfunction-0-out deleted file mode 100644 index d4faaf32..00000000 --- a/tests/command_execution/.commandlogging/17510248382308677391901912860/__mergehookfunction-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751024838.1294317,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-out -1751024838.2315176,2025-06-27T13:47:18,127779610+02:00 -1751024838.334642,2025-06-27T13:47:18,230806982+02:00 -1751024838.4383035,2025-06-27T13:47:18,334235542+02:00 -1751024838.5416803,2025-06-27T13:47:18,437825482+02:00 -1751024838.5417807,2025-06-27T13:47:18,541199198+02:00 -1751024838.7484095,2025-06-27T13:47:18,645263338+02:00 -1751024838.8518283,2025-06-27T13:47:18,747957160+02:00 -1751024838.9554794,2025-06-27T13:47:18,851381131+02:00 -1751024839.059414,2025-06-27T13:47:18,954977179+02:00 -1751024839.0594547,2025-06-27T13:47:19,058907470+02:00 -1751024839.2647915,2025-06-27T13:47:19,161835967+02:00 -1751024839.3679013,2025-06-27T13:47:19,264374781+02:00 -1751024839.4710348,2025-06-27T13:47:19,367363457+02:00 -1751024839.5747318,2025-06-27T13:47:19,470626789+02:00 -1751024839.5747666,2025-06-27T13:47:19,574324326+02:00 -1751024839.7798982,2025-06-27T13:47:19,676537009+02:00 -1751024839.8825924,2025-06-27T13:47:19,779352954+02:00 -1751024839.985621,2025-06-27T13:47:19,882067222+02:00 -1751024840.089687,2025-06-27T13:47:19,985203711+02:00 -1751024840.0984542,2025-06-27T13:47:20,089016391+02:00 -hookend -2.0636141300201416 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/after_comand-0-err b/tests/command_execution/.commandlogging/17510248382308677391901912860/after_comand-0-err deleted file mode 100644 index b3a17507..00000000 --- a/tests/command_execution/.commandlogging/17510248382308677391901912860/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024838.1289701,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0626070499420166 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/after_comand-0-out b/tests/command_execution/.commandlogging/17510248382308677391901912860/after_comand-0-out deleted file mode 100644 index 8b6dec3c..00000000 --- a/tests/command_execution/.commandlogging/17510248382308677391901912860/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751024838.1280284,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751024838.231044,2025-06-27T13:47:18,127779610+02:00 -1751024838.3344269,2025-06-27T13:47:18,230806982+02:00 -1751024838.438035,2025-06-27T13:47:18,334235542+02:00 -1751024838.5413373,2025-06-27T13:47:18,437825482+02:00 -1751024838.5413785,2025-06-27T13:47:18,541199198+02:00 -1751024838.7481694,2025-06-27T13:47:18,645263338+02:00 -1751024838.85155,2025-06-27T13:47:18,747957160+02:00 -1751024838.955175,2025-06-27T13:47:18,851381131+02:00 -1751024839.0591447,2025-06-27T13:47:18,954977179+02:00 -1751024839.0592022,2025-06-27T13:47:19,058907470+02:00 -1751024839.2645204,2025-06-27T13:47:19,161835967+02:00 -1751024839.3675141,2025-06-27T13:47:19,264374781+02:00 -1751024839.4707928,2025-06-27T13:47:19,367363457+02:00 -1751024839.574551,2025-06-27T13:47:19,470626789+02:00 -1751024839.5746095,2025-06-27T13:47:19,574324326+02:00 -1751024839.7795508,2025-06-27T13:47:19,676537009+02:00 -1751024839.8823485,2025-06-27T13:47:19,779352954+02:00 -1751024839.985391,2025-06-27T13:47:19,882067222+02:00 -1751024840.089359,2025-06-27T13:47:19,985203711+02:00 -1751024840.0894065,2025-06-27T13:47:20,089016391+02:00 -hookend -2.0634047985076904 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/after_initial_input b/tests/command_execution/.commandlogging/17510248382308677391901912860/after_initial_input deleted file mode 100644 index ead19323..00000000 --- a/tests/command_execution/.commandlogging/17510248382308677391901912860/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024838.1279163,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00037360191345214844 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/hook_function_line-1-err b/tests/command_execution/.commandlogging/17510248382308677391901912860/hook_function_line-1-err deleted file mode 100644 index 20a4b4b2..00000000 --- a/tests/command_execution/.commandlogging/17510248382308677391901912860/hook_function_line-1-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024838.1314452,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-err -hookend -2.0637118816375732 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/hook_function_line-1-out b/tests/command_execution/.commandlogging/17510248382308677391901912860/hook_function_line-1-out deleted file mode 100644 index 39f6b030..00000000 --- a/tests/command_execution/.commandlogging/17510248382308677391901912860/hook_function_line-1-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751024838.1314204,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-out -1751024838.231801,2025-06-27T13:47:18,127779610+02:00 -1751024838.3347976,2025-06-27T13:47:18,230806982+02:00 -1751024838.4385178,2025-06-27T13:47:18,334235542+02:00 -1751024838.5420334,2025-06-27T13:47:18,437825482+02:00 -1751024838.542114,2025-06-27T13:47:18,541199198+02:00 -1751024838.7486246,2025-06-27T13:47:18,645263338+02:00 -1751024838.852063,2025-06-27T13:47:18,747957160+02:00 -1751024838.9556708,2025-06-27T13:47:18,851381131+02:00 -1751024839.0596218,2025-06-27T13:47:18,954977179+02:00 -1751024839.059748,2025-06-27T13:47:19,058907470+02:00 -1751024839.2649322,2025-06-27T13:47:19,161835967+02:00 -1751024839.36818,2025-06-27T13:47:19,264374781+02:00 -1751024839.471296,2025-06-27T13:47:19,367363457+02:00 -1751024839.5749333,2025-06-27T13:47:19,470626789+02:00 -1751024839.5751898,2025-06-27T13:47:19,574324326+02:00 -1751024839.7801414,2025-06-27T13:47:19,676537009+02:00 -1751024839.8827302,2025-06-27T13:47:19,779352954+02:00 -1751024839.9858415,2025-06-27T13:47:19,882067222+02:00 -1751024840.0899417,2025-06-27T13:47:19,985203711+02:00 -1751024840.098623,2025-06-27T13:47:20,089016391+02:00 -hookend -2.06280255317688 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/void_input-2-err b/tests/command_execution/.commandlogging/17510248382308677391901912860/void_input-2-err deleted file mode 100644 index e1de4162..00000000 --- a/tests/command_execution/.commandlogging/17510248382308677391901912860/void_input-2-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024838.1321945,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-err -hookend -2.064682722091675 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510248382308677391901912860/void_input-2-out b/tests/command_execution/.commandlogging/17510248382308677391901912860/void_input-2-out deleted file mode 100644 index 69cec2a3..00000000 --- a/tests/command_execution/.commandlogging/17510248382308677391901912860/void_input-2-out +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024838.132235,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-out -hookend -2.0641093254089355 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/__mergehookfunction-0-err b/tests/command_execution/.commandlogging/17510249151932072896301725570/__mergehookfunction-0-err deleted file mode 100644 index 68cf45c8..00000000 --- a/tests/command_execution/.commandlogging/17510249151932072896301725570/__mergehookfunction-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024915.292791,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-err -hookend -0.00030994415283203125 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/__mergehookfunction-0-out b/tests/command_execution/.commandlogging/17510249151932072896301725570/__mergehookfunction-0-out deleted file mode 100644 index b457db08..00000000 --- a/tests/command_execution/.commandlogging/17510249151932072896301725570/__mergehookfunction-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751024915.292239,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-out -1751024915.3937502,2025-06-27T13:48:35,290764934+02:00 -1751024915.496822,2025-06-27T13:48:35,393204865+02:00 -1751024915.600562,2025-06-27T13:48:35,496382562+02:00 -1751024915.703259,2025-06-27T13:48:35,600042714+02:00 -1751024915.7032886,2025-06-27T13:48:35,702817430+02:00 -1751024915.9096897,2025-06-27T13:48:35,806389578+02:00 -1751024916.0128648,2025-06-27T13:48:35,909252735+02:00 -1751024916.116821,2025-06-27T13:48:36,012395623+02:00 -1751024916.220221,2025-06-27T13:48:36,116287907+02:00 -1751024916.2202585,2025-06-27T13:48:36,219842541+02:00 -1751024916.426124,2025-06-27T13:48:36,323245511+02:00 -1751024916.5297232,2025-06-27T13:48:36,425853703+02:00 -1751024916.6329284,2025-06-27T13:48:36,529203854+02:00 -1751024916.7363734,2025-06-27T13:48:36,632461075+02:00 -1751024916.7364151,2025-06-27T13:48:36,735870257+02:00 -1751024916.9435582,2025-06-27T13:48:36,839715843+02:00 -1751024917.047733,2025-06-27T13:48:36,943128233+02:00 -1751024917.150318,2025-06-27T13:48:37,047316645+02:00 -1751024917.2520041,2025-06-27T13:48:37,149855368+02:00 -1751024917.2520266,2025-06-27T13:48:37,251625360+02:00 -hookend -2.0634281635284424 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/after_comand-0-err b/tests/command_execution/.commandlogging/17510249151932072896301725570/after_comand-0-err deleted file mode 100644 index 73d624bd..00000000 --- a/tests/command_execution/.commandlogging/17510249151932072896301725570/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024915.2920203,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.06179141998291 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/after_comand-0-out b/tests/command_execution/.commandlogging/17510249151932072896301725570/after_comand-0-out deleted file mode 100644 index 741a59e7..00000000 --- a/tests/command_execution/.commandlogging/17510249151932072896301725570/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751024915.2917507,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751024915.393417,2025-06-27T13:48:35,290764934+02:00 -1751024915.496563,2025-06-27T13:48:35,393204865+02:00 -1751024915.6002612,2025-06-27T13:48:35,496382562+02:00 -1751024915.7030125,2025-06-27T13:48:35,600042714+02:00 -1751024915.7030578,2025-06-27T13:48:35,702817430+02:00 -1751024915.909423,2025-06-27T13:48:35,806389578+02:00 -1751024916.0125766,2025-06-27T13:48:35,909252735+02:00 -1751024916.1164844,2025-06-27T13:48:36,012395623+02:00 -1751024916.220039,2025-06-27T13:48:36,116287907+02:00 -1751024916.2200966,2025-06-27T13:48:36,219842541+02:00 -1751024916.4259698,2025-06-27T13:48:36,323245511+02:00 -1751024916.5293822,2025-06-27T13:48:36,425853703+02:00 -1751024916.632639,2025-06-27T13:48:36,529203854+02:00 -1751024916.736071,2025-06-27T13:48:36,632461075+02:00 -1751024916.736119,2025-06-27T13:48:36,735870257+02:00 -1751024916.9432998,2025-06-27T13:48:36,839715843+02:00 -1751024917.0475087,2025-06-27T13:48:36,943128233+02:00 -1751024917.15001,2025-06-27T13:48:37,047316645+02:00 -1751024917.2517416,2025-06-27T13:48:37,149855368+02:00 -1751024917.2517788,2025-06-27T13:48:37,251625360+02:00 -hookend -2.0621113777160645 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/after_initial_input b/tests/command_execution/.commandlogging/17510249151932072896301725570/after_initial_input deleted file mode 100644 index e904b0c8..00000000 --- a/tests/command_execution/.commandlogging/17510249151932072896301725570/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024915.2905214,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00022745132446289062 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/hook_function_line-1-err b/tests/command_execution/.commandlogging/17510249151932072896301725570/hook_function_line-1-err deleted file mode 100644 index baccf218..00000000 --- a/tests/command_execution/.commandlogging/17510249151932072896301725570/hook_function_line-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751024915.2942975,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-err diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/hook_function_line-1-out b/tests/command_execution/.commandlogging/17510249151932072896301725570/hook_function_line-1-out deleted file mode 100644 index bfeb94d7..00000000 --- a/tests/command_execution/.commandlogging/17510249151932072896301725570/hook_function_line-1-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751024915.2942476,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-out -1751024915.3941047,2025-06-27T13:48:35,290764934+02:00 -1751024915.497095,2025-06-27T13:48:35,393204865+02:00 -1751024915.6007948,2025-06-27T13:48:35,496382562+02:00 -1751024915.7034633,2025-06-27T13:48:35,600042714+02:00 -1751024915.703496,2025-06-27T13:48:35,702817430+02:00 -1751024915.9098892,2025-06-27T13:48:35,806389578+02:00 -1751024916.0131204,2025-06-27T13:48:35,909252735+02:00 -1751024916.1170743,2025-06-27T13:48:36,012395623+02:00 -1751024916.220462,2025-06-27T13:48:36,116287907+02:00 -1751024916.2205284,2025-06-27T13:48:36,219842541+02:00 -1751024916.4263167,2025-06-27T13:48:36,323245511+02:00 -1751024916.529925,2025-06-27T13:48:36,425853703+02:00 -1751024916.6331496,2025-06-27T13:48:36,529203854+02:00 -1751024916.736598,2025-06-27T13:48:36,632461075+02:00 -1751024916.736664,2025-06-27T13:48:36,735870257+02:00 -1751024916.9438033,2025-06-27T13:48:36,839715843+02:00 -1751024917.0478916,2025-06-27T13:48:36,943128233+02:00 -1751024917.1505322,2025-06-27T13:48:37,047316645+02:00 -1751024917.2523515,2025-06-27T13:48:37,149855368+02:00 -1751024917.2523804,2025-06-27T13:48:37,251625360+02:00 diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/void_input-2-err b/tests/command_execution/.commandlogging/17510249151932072896301725570/void_input-2-err deleted file mode 100644 index 5ff168ac..00000000 --- a/tests/command_execution/.commandlogging/17510249151932072896301725570/void_input-2-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751024915.2953196,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-err diff --git a/tests/command_execution/.commandlogging/17510249151932072896301725570/void_input-2-out b/tests/command_execution/.commandlogging/17510249151932072896301725570/void_input-2-out deleted file mode 100644 index 8a1b3529..00000000 --- a/tests/command_execution/.commandlogging/17510249151932072896301725570/void_input-2-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751024915.2955427,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-out diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/__mergehookfunction-0-err b/tests/command_execution/.commandlogging/17510249732896639553809809502/__mergehookfunction-0-err deleted file mode 100644 index aa6c6188..00000000 --- a/tests/command_execution/.commandlogging/17510249732896639553809809502/__mergehookfunction-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024973.3105097,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-err -hookend -0.0003554821014404297 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/__mergehookfunction-0-out b/tests/command_execution/.commandlogging/17510249732896639553809809502/__mergehookfunction-0-out deleted file mode 100644 index 02218f20..00000000 --- a/tests/command_execution/.commandlogging/17510249732896639553809809502/__mergehookfunction-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751024973.310153,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-out -1751024973.4123704,2025-06-27T13:49:33,308602832+02:00 -1751024973.5159078,2025-06-27T13:49:33,411745517+02:00 -1751024973.6190417,2025-06-27T13:49:33,515403304+02:00 -1751024973.7231965,2025-06-27T13:49:33,618738262+02:00 -1751024973.7232275,2025-06-27T13:49:33,722789316+02:00 -1751024973.9299517,2025-06-27T13:49:33,826597608+02:00 -1751024974.0332024,2025-06-27T13:49:33,929688731+02:00 -1751024974.1367154,2025-06-27T13:49:34,032803369+02:00 -1751024974.2404892,2025-06-27T13:49:34,136331224+02:00 -1751024974.2405357,2025-06-27T13:49:34,239916475+02:00 -1751024974.4463224,2025-06-27T13:49:34,343113458+02:00 -1751024974.5500562,2025-06-27T13:49:34,445770715+02:00 -1751024974.6543813,2025-06-27T13:49:34,549578917+02:00 -1751024974.7575371,2025-06-27T13:49:34,653969265+02:00 -1751024974.7575657,2025-06-27T13:49:34,757186631+02:00 -1751024974.963275,2025-06-27T13:49:34,859921092+02:00 -1751024975.0662923,2025-06-27T13:49:34,962856290+02:00 -1751024975.1692538,2025-06-27T13:49:35,065894037+02:00 -1751024975.2721398,2025-06-27T13:49:35,168747011+02:00 -1751024975.2721875,2025-06-27T13:49:35,271785436+02:00 -hookend -2.0654468536376953 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/after_comand-0-err b/tests/command_execution/.commandlogging/17510249732896639553809809502/after_comand-0-err deleted file mode 100644 index f14ec8b9..00000000 --- a/tests/command_execution/.commandlogging/17510249732896639553809809502/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024973.3092992,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0646913051605225 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/after_comand-0-out b/tests/command_execution/.commandlogging/17510249732896639553809809502/after_comand-0-out deleted file mode 100644 index 8adbc742..00000000 --- a/tests/command_execution/.commandlogging/17510249732896639553809809502/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751024973.3090308,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751024973.4120176,2025-06-27T13:49:33,308602832+02:00 -1751024973.5155876,2025-06-27T13:49:33,411745517+02:00 -1751024973.618923,2025-06-27T13:49:33,515403304+02:00 -1751024973.7229888,2025-06-27T13:49:33,618738262+02:00 -1751024973.7230368,2025-06-27T13:49:33,722789316+02:00 -1751024973.9298716,2025-06-27T13:49:33,826597608+02:00 -1751024974.0330184,2025-06-27T13:49:33,929688731+02:00 -1751024974.1365104,2025-06-27T13:49:34,032803369+02:00 -1751024974.2402976,2025-06-27T13:49:34,136331224+02:00 -1751024974.2403626,2025-06-27T13:49:34,239916475+02:00 -1751024974.4459646,2025-06-27T13:49:34,343113458+02:00 -1751024974.5498006,2025-06-27T13:49:34,445770715+02:00 -1751024974.654171,2025-06-27T13:49:34,549578917+02:00 -1751024974.7573447,2025-06-27T13:49:34,653969265+02:00 -1751024974.757397,2025-06-27T13:49:34,757186631+02:00 -1751024974.963035,2025-06-27T13:49:34,859921092+02:00 -1751024975.0660686,2025-06-27T13:49:34,962856290+02:00 -1751024975.1689343,2025-06-27T13:49:35,065894037+02:00 -1751024975.271888,2025-06-27T13:49:35,168747011+02:00 -1751024975.2719665,2025-06-27T13:49:35,271785436+02:00 -hookend -2.0649352073669434 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/after_initial_input b/tests/command_execution/.commandlogging/17510249732896639553809809502/after_initial_input deleted file mode 100644 index cb93e272..00000000 --- a/tests/command_execution/.commandlogging/17510249732896639553809809502/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024973.3084848,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00035190582275390625 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/hook_function_line-1-err b/tests/command_execution/.commandlogging/17510249732896639553809809502/hook_function_line-1-err deleted file mode 100644 index d222d7db..00000000 --- a/tests/command_execution/.commandlogging/17510249732896639553809809502/hook_function_line-1-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024973.312039,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-err -hookend -2.0655384063720703 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/hook_function_line-1-out b/tests/command_execution/.commandlogging/17510249732896639553809809502/hook_function_line-1-out deleted file mode 100644 index 950e0d8e..00000000 --- a/tests/command_execution/.commandlogging/17510249732896639553809809502/hook_function_line-1-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751024973.3117957,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-out -1751024973.412645,2025-06-27T13:49:33,308602832+02:00 -1751024973.5162323,2025-06-27T13:49:33,411745517+02:00 -1751024973.6192377,2025-06-27T13:49:33,515403304+02:00 -1751024973.7234488,2025-06-27T13:49:33,618738262+02:00 -1751024973.723479,2025-06-27T13:49:33,722789316+02:00 -1751024973.9300976,2025-06-27T13:49:33,826597608+02:00 -1751024974.0334477,2025-06-27T13:49:33,929688731+02:00 -1751024974.1369262,2025-06-27T13:49:34,032803369+02:00 -1751024974.2407427,2025-06-27T13:49:34,136331224+02:00 -1751024974.240885,2025-06-27T13:49:34,239916475+02:00 -1751024974.4465804,2025-06-27T13:49:34,343113458+02:00 -1751024974.5502446,2025-06-27T13:49:34,445770715+02:00 -1751024974.6546192,2025-06-27T13:49:34,549578917+02:00 -1751024974.7577233,2025-06-27T13:49:34,653969265+02:00 -1751024974.7577865,2025-06-27T13:49:34,757186631+02:00 -1751024974.9635034,2025-06-27T13:49:34,859921092+02:00 -1751024975.0665193,2025-06-27T13:49:34,962856290+02:00 -1751024975.169504,2025-06-27T13:49:35,065894037+02:00 -1751024975.27241,2025-06-27T13:49:35,168747011+02:00 -1751024975.2724528,2025-06-27T13:49:35,271785436+02:00 -hookend -2.065188407897949 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/void_input-2-err b/tests/command_execution/.commandlogging/17510249732896639553809809502/void_input-2-err deleted file mode 100644 index 66959c23..00000000 --- a/tests/command_execution/.commandlogging/17510249732896639553809809502/void_input-2-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024973.3128157,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-err -hookend -2.066023349761963 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510249732896639553809809502/void_input-2-out b/tests/command_execution/.commandlogging/17510249732896639553809809502/void_input-2-out deleted file mode 100644 index 7d955990..00000000 --- a/tests/command_execution/.commandlogging/17510249732896639553809809502/void_input-2-out +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751024973.3130074,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-out -hookend -2.06594181060791 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/__mergehookfunction-0-err b/tests/command_execution/.commandlogging/17510250016515771363671292394/__mergehookfunction-0-err deleted file mode 100644 index 8c25315a..00000000 --- a/tests/command_execution/.commandlogging/17510250016515771363671292394/__mergehookfunction-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025001.8553276,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-err -hookend -0.00029087066650390625 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/__mergehookfunction-0-out b/tests/command_execution/.commandlogging/17510250016515771363671292394/__mergehookfunction-0-out deleted file mode 100644 index ca4e773c..00000000 --- a/tests/command_execution/.commandlogging/17510250016515771363671292394/__mergehookfunction-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025001.8548923,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-out -1751025001.9562304,2025-06-27T13:50:01,853103200+02:00 -1751025002.059101,2025-06-27T13:50:01,955677822+02:00 -1751025002.1628292,2025-06-27T13:50:02,058679439+02:00 -1751025002.266543,2025-06-27T13:50:02,162460192+02:00 -1751025002.2665899,2025-06-27T13:50:02,266141614+02:00 -1751025002.4724848,2025-06-27T13:50:02,369508842+02:00 -1751025002.5752213,2025-06-27T13:50:02,472254172+02:00 -1751025002.6787844,2025-06-27T13:50:02,574938281+02:00 -1751025002.7821422,2025-06-27T13:50:02,678427850+02:00 -1751025002.782174,2025-06-27T13:50:02,781686804+02:00 -1751025002.9874039,2025-06-27T13:50:02,883914389+02:00 -1751025003.0903656,2025-06-27T13:50:02,986903459+02:00 -1751025003.1938403,2025-06-27T13:50:03,090048371+02:00 -1751025003.2978895,2025-06-27T13:50:03,193497799+02:00 -1751025003.2980087,2025-06-27T13:50:03,297411844+02:00 -1751025003.5042071,2025-06-27T13:50:03,400525857+02:00 -1751025003.6072078,2025-06-27T13:50:03,503757303+02:00 -1751025003.7099783,2025-06-27T13:50:03,606778907+02:00 -1751025003.8138409,2025-06-27T13:50:03,709683530+02:00 -1751025003.8138797,2025-06-27T13:50:03,813415537+02:00 -hookend -2.0618860721588135 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/after_comand-0-err b/tests/command_execution/.commandlogging/17510250016515771363671292394/after_comand-0-err deleted file mode 100644 index 347a8df8..00000000 --- a/tests/command_execution/.commandlogging/17510250016515771363671292394/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025001.8538365,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.061314582824707 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/after_comand-0-out b/tests/command_execution/.commandlogging/17510250016515771363671292394/after_comand-0-out deleted file mode 100644 index 28cd24b7..00000000 --- a/tests/command_execution/.commandlogging/17510250016515771363671292394/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025001.8539104,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751025001.9558804,2025-06-27T13:50:01,853103200+02:00 -1751025002.0588682,2025-06-27T13:50:01,955677822+02:00 -1751025002.1626198,2025-06-27T13:50:02,058679439+02:00 -1751025002.266317,2025-06-27T13:50:02,162460192+02:00 -1751025002.2663612,2025-06-27T13:50:02,266141614+02:00 -1751025002.4723203,2025-06-27T13:50:02,369508842+02:00 -1751025002.5751565,2025-06-27T13:50:02,472254172+02:00 -1751025002.6785994,2025-06-27T13:50:02,574938281+02:00 -1751025002.781891,2025-06-27T13:50:02,678427850+02:00 -1751025002.7819412,2025-06-27T13:50:02,781686804+02:00 -1751025002.9871383,2025-06-27T13:50:02,883914389+02:00 -1751025003.090196,2025-06-27T13:50:02,986903459+02:00 -1751025003.193669,2025-06-27T13:50:03,090048371+02:00 -1751025003.297648,2025-06-27T13:50:03,193497799+02:00 -1751025003.2977364,2025-06-27T13:50:03,297411844+02:00 -1751025003.5039632,2025-06-27T13:50:03,400525857+02:00 -1751025003.6069572,2025-06-27T13:50:03,503757303+02:00 -1751025003.7098286,2025-06-27T13:50:03,606778907+02:00 -1751025003.813611,2025-06-27T13:50:03,709683530+02:00 -1751025003.8136666,2025-06-27T13:50:03,813415537+02:00 -hookend -2.061310291290283 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/after_initial_input b/tests/command_execution/.commandlogging/17510250016515771363671292394/after_initial_input deleted file mode 100644 index c96c1c47..00000000 --- a/tests/command_execution/.commandlogging/17510250016515771363671292394/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025001.8531318,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0003268718719482422 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/hook_function_line-1-err b/tests/command_execution/.commandlogging/17510250016515771363671292394/hook_function_line-1-err deleted file mode 100644 index 6cf7fd0d..00000000 --- a/tests/command_execution/.commandlogging/17510250016515771363671292394/hook_function_line-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025001.857174,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-err diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/hook_function_line-1-out b/tests/command_execution/.commandlogging/17510250016515771363671292394/hook_function_line-1-out deleted file mode 100644 index 2178d202..00000000 --- a/tests/command_execution/.commandlogging/17510250016515771363671292394/hook_function_line-1-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751025001.8568523,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-out -1751025001.9565084,2025-06-27T13:50:01,853103200+02:00 -1751025002.059533,2025-06-27T13:50:01,955677822+02:00 -1751025002.162961,2025-06-27T13:50:02,058679439+02:00 -1751025002.2667685,2025-06-27T13:50:02,162460192+02:00 -1751025002.2668214,2025-06-27T13:50:02,266141614+02:00 -1751025002.4725327,2025-06-27T13:50:02,369508842+02:00 -1751025002.5755215,2025-06-27T13:50:02,472254172+02:00 -1751025002.679004,2025-06-27T13:50:02,574938281+02:00 -1751025002.7823648,2025-06-27T13:50:02,678427850+02:00 -1751025002.7823975,2025-06-27T13:50:02,781686804+02:00 -1751025002.9876633,2025-06-27T13:50:02,883914389+02:00 -1751025003.0906081,2025-06-27T13:50:02,986903459+02:00 -1751025003.1941297,2025-06-27T13:50:03,090048371+02:00 -1751025003.2982543,2025-06-27T13:50:03,193497799+02:00 -1751025003.298465,2025-06-27T13:50:03,297411844+02:00 -1751025003.5045886,2025-06-27T13:50:03,400525857+02:00 -1751025003.607533,2025-06-27T13:50:03,503757303+02:00 -1751025003.7102613,2025-06-27T13:50:03,606778907+02:00 -1751025003.8140032,2025-06-27T13:50:03,709683530+02:00 -1751025003.8140843,2025-06-27T13:50:03,813415537+02:00 diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/void_input-2-err b/tests/command_execution/.commandlogging/17510250016515771363671292394/void_input-2-err deleted file mode 100644 index ed1a22ce..00000000 --- a/tests/command_execution/.commandlogging/17510250016515771363671292394/void_input-2-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025001.8579378,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-err diff --git a/tests/command_execution/.commandlogging/17510250016515771363671292394/void_input-2-out b/tests/command_execution/.commandlogging/17510250016515771363671292394/void_input-2-out deleted file mode 100644 index 51e30670..00000000 --- a/tests/command_execution/.commandlogging/17510250016515771363671292394/void_input-2-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025001.857995,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-out diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/__mergehookfunction-0-err b/tests/command_execution/.commandlogging/17510250452178389148943459873/__mergehookfunction-0-err deleted file mode 100644 index 8844dc09..00000000 --- a/tests/command_execution/.commandlogging/17510250452178389148943459873/__mergehookfunction-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025045.2826958,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-err -hookend -0.0003314018249511719 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/__mergehookfunction-0-out b/tests/command_execution/.commandlogging/17510250452178389148943459873/__mergehookfunction-0-out deleted file mode 100644 index 6008773c..00000000 --- a/tests/command_execution/.commandlogging/17510250452178389148943459873/__mergehookfunction-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025045.2825418,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-out -1751025045.384085,2025-06-27T13:50:45,280375632+02:00 -1751025045.4877365,2025-06-27T13:50:45,383538228+02:00 -1751025045.5911353,2025-06-27T13:50:45,487226488+02:00 -1751025045.6939578,2025-06-27T13:50:45,590686052+02:00 -1751025045.69399,2025-06-27T13:50:45,693650914+02:00 -1751025045.9009838,2025-06-27T13:50:45,797062124+02:00 -1751025046.0049179,2025-06-27T13:50:45,900568018+02:00 -1751025046.1090384,2025-06-27T13:50:46,004457047+02:00 -1751025046.212581,2025-06-27T13:50:46,108585440+02:00 -1751025046.2126167,2025-06-27T13:50:46,211935967+02:00 -1751025046.417881,2025-06-27T13:50:46,314381746+02:00 -1751025046.5217166,2025-06-27T13:50:46,417462124+02:00 -1751025046.625979,2025-06-27T13:50:46,521265042+02:00 -1751025046.7300858,2025-06-27T13:50:46,625524586+02:00 -1751025046.7301233,2025-06-27T13:50:46,729378435+02:00 -1751025046.9364517,2025-06-27T13:50:46,833512102+02:00 -1751025047.0395906,2025-06-27T13:50:46,936307406+02:00 -1751025047.1433303,2025-06-27T13:50:47,039137248+02:00 -1751025047.24661,2025-06-27T13:50:47,142838158+02:00 -1751025047.2466393,2025-06-27T13:50:47,246050786+02:00 -hookend -2.0671043395996094 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/after_comand-0-err b/tests/command_execution/.commandlogging/17510250452178389148943459873/after_comand-0-err deleted file mode 100644 index 3b65d8e8..00000000 --- a/tests/command_execution/.commandlogging/17510250452178389148943459873/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025045.2813303,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0665528774261475 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/after_comand-0-out b/tests/command_execution/.commandlogging/17510250452178389148943459873/after_comand-0-out deleted file mode 100644 index 7b8247c4..00000000 --- a/tests/command_execution/.commandlogging/17510250452178389148943459873/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025045.2805831,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751025045.3837292,2025-06-27T13:50:45,280375632+02:00 -1751025045.487408,2025-06-27T13:50:45,383538228+02:00 -1751025045.5908647,2025-06-27T13:50:45,487226488+02:00 -1751025045.6938112,2025-06-27T13:50:45,590686052+02:00 -1751025045.6938531,2025-06-27T13:50:45,693650914+02:00 -1751025045.9007065,2025-06-27T13:50:45,797062124+02:00 -1751025046.0046499,2025-06-27T13:50:45,900568018+02:00 -1751025046.1087515,2025-06-27T13:50:46,004457047+02:00 -1751025046.2122433,2025-06-27T13:50:46,108585440+02:00 -1751025046.2122924,2025-06-27T13:50:46,211935967+02:00 -1751025046.4176378,2025-06-27T13:50:46,314381746+02:00 -1751025046.5214503,2025-06-27T13:50:46,417462124+02:00 -1751025046.625701,2025-06-27T13:50:46,521265042+02:00 -1751025046.7295597,2025-06-27T13:50:46,625524586+02:00 -1751025046.7296112,2025-06-27T13:50:46,729378435+02:00 -1751025046.9363883,2025-06-27T13:50:46,833512102+02:00 -1751025047.0393107,2025-06-27T13:50:46,936307406+02:00 -1751025047.1430643,2025-06-27T13:50:47,039137248+02:00 -1751025047.2462087,2025-06-27T13:50:47,142838158+02:00 -1751025047.2462585,2025-06-27T13:50:47,246050786+02:00 -hookend -2.067237615585327 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/after_initial_input b/tests/command_execution/.commandlogging/17510250452178389148943459873/after_initial_input deleted file mode 100644 index c77f5cb2..00000000 --- a/tests/command_execution/.commandlogging/17510250452178389148943459873/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025045.2804134,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0003705024719238281 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/hook_function_line-1-err b/tests/command_execution/.commandlogging/17510250452178389148943459873/hook_function_line-1-err deleted file mode 100644 index ea79b134..00000000 --- a/tests/command_execution/.commandlogging/17510250452178389148943459873/hook_function_line-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025045.2843182,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-err diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/hook_function_line-1-out b/tests/command_execution/.commandlogging/17510250452178389148943459873/hook_function_line-1-out deleted file mode 100644 index 632f31ad..00000000 --- a/tests/command_execution/.commandlogging/17510250452178389148943459873/hook_function_line-1-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751025045.2837858,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-out -1751025045.3844025,2025-06-27T13:50:45,280375632+02:00 -1751025045.4879947,2025-06-27T13:50:45,383538228+02:00 -1751025045.5913992,2025-06-27T13:50:45,487226488+02:00 -1751025045.6942055,2025-06-27T13:50:45,590686052+02:00 -1751025045.694235,2025-06-27T13:50:45,693650914+02:00 -1751025045.9012675,2025-06-27T13:50:45,797062124+02:00 -1751025046.005219,2025-06-27T13:50:45,900568018+02:00 -1751025046.1093435,2025-06-27T13:50:46,004457047+02:00 -1751025046.2128456,2025-06-27T13:50:46,108585440+02:00 -1751025046.2128792,2025-06-27T13:50:46,211935967+02:00 -1751025046.4181793,2025-06-27T13:50:46,314381746+02:00 -1751025046.5220559,2025-06-27T13:50:46,417462124+02:00 -1751025046.6262612,2025-06-27T13:50:46,521265042+02:00 -1751025046.7304525,2025-06-27T13:50:46,625524586+02:00 -1751025046.7305934,2025-06-27T13:50:46,729378435+02:00 -1751025046.9365535,2025-06-27T13:50:46,833512102+02:00 -1751025047.0399206,2025-06-27T13:50:46,936307406+02:00 -1751025047.1436064,2025-06-27T13:50:47,039137248+02:00 -1751025047.2468176,2025-06-27T13:50:47,142838158+02:00 -1751025047.2468863,2025-06-27T13:50:47,246050786+02:00 diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/void_input-2-err b/tests/command_execution/.commandlogging/17510250452178389148943459873/void_input-2-err deleted file mode 100644 index 6b6a333d..00000000 --- a/tests/command_execution/.commandlogging/17510250452178389148943459873/void_input-2-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025045.2851515,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-err diff --git a/tests/command_execution/.commandlogging/17510250452178389148943459873/void_input-2-out b/tests/command_execution/.commandlogging/17510250452178389148943459873/void_input-2-out deleted file mode 100644 index aacd8d33..00000000 --- a/tests/command_execution/.commandlogging/17510250452178389148943459873/void_input-2-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025045.28487,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-out diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/__mergehookfunction-0-err b/tests/command_execution/.commandlogging/17510251636050157590363940597/__mergehookfunction-0-err deleted file mode 100644 index 2862e9c3..00000000 --- a/tests/command_execution/.commandlogging/17510251636050157590363940597/__mergehookfunction-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025163.1278405,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-err -hookend -0.0003478527069091797 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/__mergehookfunction-0-out b/tests/command_execution/.commandlogging/17510251636050157590363940597/__mergehookfunction-0-out deleted file mode 100644 index 38571e93..00000000 --- a/tests/command_execution/.commandlogging/17510251636050157590363940597/__mergehookfunction-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025163.1276565,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-out -1751025163.2296646,2025-06-27T13:52:43,126010999+02:00 -1751025163.332678,2025-06-27T13:52:43,229204016+02:00 -1751025163.4362495,2025-06-27T13:52:43,332348060+02:00 -1751025163.5400336,2025-06-27T13:52:43,435822620+02:00 -1751025163.5400796,2025-06-27T13:52:43,539578389+02:00 -1751025163.7461207,2025-06-27T13:52:43,642923589+02:00 -1751025163.8487296,2025-06-27T13:52:43,745949485+02:00 -1751025163.9520457,2025-06-27T13:52:43,848305170+02:00 -1751025164.0548556,2025-06-27T13:52:43,951680409+02:00 -1751025164.054888,2025-06-27T13:52:44,054503048+02:00 -1751025164.2600524,2025-06-27T13:52:44,156701058+02:00 -1751025164.3628657,2025-06-27T13:52:44,259609802+02:00 -1751025164.4660633,2025-06-27T13:52:44,362454780+02:00 -1751025164.5694096,2025-06-27T13:52:44,465646456+02:00 -1751025164.5694385,2025-06-27T13:52:44,568883577+02:00 -1751025164.7766125,2025-06-27T13:52:44,672748788+02:00 -1751025164.8797123,2025-06-27T13:52:44,776126872+02:00 -1751025164.9839118,2025-06-27T13:52:44,879273762+02:00 -1751025165.0868678,2025-06-27T13:52:44,983516263+02:00 -1751025165.0869086,2025-06-27T13:52:45,086360932+02:00 -hookend -2.061786413192749 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/after_comand-0-err b/tests/command_execution/.commandlogging/17510251636050157590363940597/after_comand-0-err deleted file mode 100644 index f85a2e14..00000000 --- a/tests/command_execution/.commandlogging/17510251636050157590363940597/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025163.1263015,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.061798572540283 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/after_comand-0-out b/tests/command_execution/.commandlogging/17510251636050157590363940597/after_comand-0-out deleted file mode 100644 index 94cfbe55..00000000 --- a/tests/command_execution/.commandlogging/17510251636050157590363940597/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025163.1263237,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751025163.2293878,2025-06-27T13:52:43,126010999+02:00 -1751025163.3325117,2025-06-27T13:52:43,229204016+02:00 -1751025163.436009,2025-06-27T13:52:43,332348060+02:00 -1751025163.5397701,2025-06-27T13:52:43,435822620+02:00 -1751025163.53984,2025-06-27T13:52:43,539578389+02:00 -1751025163.7460322,2025-06-27T13:52:43,642923589+02:00 -1751025163.8484879,2025-06-27T13:52:43,745949485+02:00 -1751025163.9517763,2025-06-27T13:52:43,848305170+02:00 -1751025164.0546818,2025-06-27T13:52:43,951680409+02:00 -1751025164.054731,2025-06-27T13:52:44,054503048+02:00 -1751025164.259808,2025-06-27T13:52:44,156701058+02:00 -1751025164.362608,2025-06-27T13:52:44,259609802+02:00 -1751025164.4658313,2025-06-27T13:52:44,362454780+02:00 -1751025164.5690956,2025-06-27T13:52:44,465646456+02:00 -1751025164.5691423,2025-06-27T13:52:44,568883577+02:00 -1751025164.7763183,2025-06-27T13:52:44,672748788+02:00 -1751025164.8794503,2025-06-27T13:52:44,776126872+02:00 -1751025164.9836934,2025-06-27T13:52:44,879273762+02:00 -1751025165.0865355,2025-06-27T13:52:44,983516263+02:00 -1751025165.0865736,2025-06-27T13:52:45,086360932+02:00 -hookend -2.0617735385894775 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/after_initial_input b/tests/command_execution/.commandlogging/17510251636050157590363940597/after_initial_input deleted file mode 100644 index 2bb3c233..00000000 --- a/tests/command_execution/.commandlogging/17510251636050157590363940597/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025163.1257226,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0004131793975830078 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/hook_function_line-1-err b/tests/command_execution/.commandlogging/17510251636050157590363940597/hook_function_line-1-err deleted file mode 100644 index 36c47f50..00000000 --- a/tests/command_execution/.commandlogging/17510251636050157590363940597/hook_function_line-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025163.1297665,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-err diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/hook_function_line-1-out b/tests/command_execution/.commandlogging/17510251636050157590363940597/hook_function_line-1-out deleted file mode 100644 index ddabac58..00000000 --- a/tests/command_execution/.commandlogging/17510251636050157590363940597/hook_function_line-1-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751025163.1289153,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-out -1751025163.2298636,2025-06-27T13:52:43,126010999+02:00 -1751025163.332885,2025-06-27T13:52:43,229204016+02:00 -1751025163.4364414,2025-06-27T13:52:43,332348060+02:00 -1751025163.5403051,2025-06-27T13:52:43,435822620+02:00 -1751025163.5403423,2025-06-27T13:52:43,539578389+02:00 -1751025163.7463114,2025-06-27T13:52:43,642923589+02:00 -1751025163.8490877,2025-06-27T13:52:43,745949485+02:00 -1751025163.952408,2025-06-27T13:52:43,848305170+02:00 -1751025164.055152,2025-06-27T13:52:43,951680409+02:00 -1751025164.0551817,2025-06-27T13:52:44,054503048+02:00 -1751025164.2603073,2025-06-27T13:52:44,156701058+02:00 -1751025164.3631737,2025-06-27T13:52:44,259609802+02:00 -1751025164.4663167,2025-06-27T13:52:44,362454780+02:00 -1751025164.5696177,2025-06-27T13:52:44,465646456+02:00 -1751025164.569647,2025-06-27T13:52:44,568883577+02:00 -1751025164.7768393,2025-06-27T13:52:44,672748788+02:00 -1751025164.8799803,2025-06-27T13:52:44,776126872+02:00 -1751025164.984206,2025-06-27T13:52:44,879273762+02:00 -1751025165.0871933,2025-06-27T13:52:44,983516263+02:00 -1751025165.0872295,2025-06-27T13:52:45,086360932+02:00 diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/void_input-2-err b/tests/command_execution/.commandlogging/17510251636050157590363940597/void_input-2-err deleted file mode 100644 index 6526d21a..00000000 --- a/tests/command_execution/.commandlogging/17510251636050157590363940597/void_input-2-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025163.1307368,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-err diff --git a/tests/command_execution/.commandlogging/17510251636050157590363940597/void_input-2-out b/tests/command_execution/.commandlogging/17510251636050157590363940597/void_input-2-out deleted file mode 100644 index f6b1d7c4..00000000 --- a/tests/command_execution/.commandlogging/17510251636050157590363940597/void_input-2-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025163.1303241,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-out diff --git a/tests/command_execution/.commandlogging/17510251816903650858575506288/after_comand-0-err b/tests/command_execution/.commandlogging/17510251816903650858575506288/after_comand-0-err deleted file mode 100644 index a654743e..00000000 --- a/tests/command_execution/.commandlogging/17510251816903650858575506288/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025181.4983888,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.06290340423584 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251816903650858575506288/after_comand-0-out b/tests/command_execution/.commandlogging/17510251816903650858575506288/after_comand-0-out deleted file mode 100644 index ded5ab1e..00000000 --- a/tests/command_execution/.commandlogging/17510251816903650858575506288/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025181.4978473,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751025181.6002717,2025-06-27T13:53:01,497443546+02:00 -1751025181.7030268,2025-06-27T13:53:01,600050708+02:00 -1751025181.8058984,2025-06-27T13:53:01,702868164+02:00 -1751025181.9090974,2025-06-27T13:53:01,805722245+02:00 -1751025181.9091518,2025-06-27T13:53:01,908883816+02:00 -1751025182.1158552,2025-06-27T13:53:02,012626990+02:00 -1751025182.218473,2025-06-27T13:53:02,115703597+02:00 -1751025182.3215532,2025-06-27T13:53:02,218395967+02:00 -1751025182.4243524,2025-06-27T13:53:02,321378043+02:00 -1751025182.4244008,2025-06-27T13:53:02,424211898+02:00 -1751025182.6301277,2025-06-27T13:53:02,527000375+02:00 -1751025182.7338514,2025-06-27T13:53:02,629954816+02:00 -1751025182.8374963,2025-06-27T13:53:02,733679180+02:00 -1751025182.9408405,2025-06-27T13:53:02,837307113+02:00 -1751025182.940898,2025-06-27T13:53:02,940662973+02:00 -1751025183.1484585,2025-06-27T13:53:03,044136102+02:00 -1751025183.2526882,2025-06-27T13:53:03,148262659+02:00 -1751025183.356477,2025-06-27T13:53:03,252497720+02:00 -1751025183.4595215,2025-06-27T13:53:03,356299141+02:00 -1751025183.4595635,2025-06-27T13:53:03,459351145+02:00 -hookend -2.0634565353393555 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251816903650858575506288/after_initial_input b/tests/command_execution/.commandlogging/17510251816903650858575506288/after_initial_input deleted file mode 100644 index f2628d19..00000000 --- a/tests/command_execution/.commandlogging/17510251816903650858575506288/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025181.4970305,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00029730796813964844 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251816903650858575506288/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510251816903650858575506288/hook_function_line-0-err deleted file mode 100644 index 5773bc55..00000000 --- a/tests/command_execution/.commandlogging/17510251816903650858575506288/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025181.4996805,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510251816903650858575506288/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510251816903650858575506288/hook_function_line-0-out deleted file mode 100644 index 9d4d4241..00000000 --- a/tests/command_execution/.commandlogging/17510251816903650858575506288/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751025181.4991786,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751025181.600605,2025-06-27T13:53:01,497443546+02:00 -1751025181.7031724,2025-06-27T13:53:01,600050708+02:00 -1751025181.806038,2025-06-27T13:53:01,702868164+02:00 -1751025181.9093595,2025-06-27T13:53:01,805722245+02:00 -1751025181.909402,2025-06-27T13:53:01,908883816+02:00 -1751025182.1161077,2025-06-27T13:53:02,012626990+02:00 -1751025182.2186182,2025-06-27T13:53:02,115703597+02:00 -1751025182.321781,2025-06-27T13:53:02,218395967+02:00 -1751025182.4248104,2025-06-27T13:53:02,321378043+02:00 -1751025182.424928,2025-06-27T13:53:02,424211898+02:00 -1751025182.6305277,2025-06-27T13:53:02,527000375+02:00 -1751025182.7341392,2025-06-27T13:53:02,629954816+02:00 -1751025182.8377776,2025-06-27T13:53:02,733679180+02:00 -1751025182.9411347,2025-06-27T13:53:02,837307113+02:00 -1751025182.9411683,2025-06-27T13:53:02,940662973+02:00 -1751025183.14889,2025-06-27T13:53:03,044136102+02:00 -1751025183.2528687,2025-06-27T13:53:03,148262659+02:00 -1751025183.3567495,2025-06-27T13:53:03,252497720+02:00 -1751025183.459835,2025-06-27T13:53:03,356299141+02:00 -1751025183.4598708,2025-06-27T13:53:03,459351145+02:00 diff --git a/tests/command_execution/.commandlogging/17510251816903650858575506288/void_input-1-err b/tests/command_execution/.commandlogging/17510251816903650858575506288/void_input-1-err deleted file mode 100644 index 97fbfe64..00000000 --- a/tests/command_execution/.commandlogging/17510251816903650858575506288/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025181.500547,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510251816903650858575506288/void_input-1-out b/tests/command_execution/.commandlogging/17510251816903650858575506288/void_input-1-out deleted file mode 100644 index 3b5279e5..00000000 --- a/tests/command_execution/.commandlogging/17510251816903650858575506288/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025181.5000887,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510251998639835173709686216/after_comand-0-err b/tests/command_execution/.commandlogging/17510251998639835173709686216/after_comand-0-err deleted file mode 100644 index 4abdb1d5..00000000 --- a/tests/command_execution/.commandlogging/17510251998639835173709686216/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025199.997434,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0641515254974365 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251998639835173709686216/after_comand-0-out b/tests/command_execution/.commandlogging/17510251998639835173709686216/after_comand-0-out deleted file mode 100644 index 18c86891..00000000 --- a/tests/command_execution/.commandlogging/17510251998639835173709686216/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025199.997121,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751025200.0991445,2025-06-27T13:53:19,996377245+02:00 -1751025200.2018127,2025-06-27T13:53:20,098958810+02:00 -1751025200.3057718,2025-06-27T13:53:20,201704933+02:00 -1751025200.4098842,2025-06-27T13:53:20,305585857+02:00 -1751025200.4099405,2025-06-27T13:53:20,409702755+02:00 -1751025200.6155746,2025-06-27T13:53:20,512577474+02:00 -1751025200.7183986,2025-06-27T13:53:20,615404704+02:00 -1751025200.8215957,2025-06-27T13:53:20,718266813+02:00 -1751025200.925251,2025-06-27T13:53:20,821417314+02:00 -1751025200.9253125,2025-06-27T13:53:20,925068864+02:00 -1751025201.1310067,2025-06-27T13:53:21,027531072+02:00 -1751025201.234005,2025-06-27T13:53:21,130799372+02:00 -1751025201.3375275,2025-06-27T13:53:21,233833553+02:00 -1751025201.4412317,2025-06-27T13:53:21,337317387+02:00 -1751025201.4412875,2025-06-27T13:53:21,441013631+02:00 -1751025201.6479714,2025-06-27T13:53:21,544382037+02:00 -1751025201.7520883,2025-06-27T13:53:21,647790778+02:00 -1751025201.8561382,2025-06-27T13:53:21,751895965+02:00 -1751025201.9599824,2025-06-27T13:53:21,855953541+02:00 -1751025201.9600387,2025-06-27T13:53:21,959778534+02:00 -hookend -2.0644984245300293 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251998639835173709686216/after_initial_input b/tests/command_execution/.commandlogging/17510251998639835173709686216/after_initial_input deleted file mode 100644 index 93a0e845..00000000 --- a/tests/command_execution/.commandlogging/17510251998639835173709686216/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025199.9962935,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00023317337036132812 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251998639835173709686216/void_input-0-err b/tests/command_execution/.commandlogging/17510251998639835173709686216/void_input-0-err deleted file mode 100644 index e64738bf..00000000 --- a/tests/command_execution/.commandlogging/17510251998639835173709686216/void_input-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025199.99786,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-0-err -hookend -2.0655570030212402 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510251998639835173709686216/void_input-0-out b/tests/command_execution/.commandlogging/17510251998639835173709686216/void_input-0-out deleted file mode 100644 index 9ce37879..00000000 --- a/tests/command_execution/.commandlogging/17510251998639835173709686216/void_input-0-out +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025199.9981327,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-0-out -hookend -2.0652360916137695 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751025255216489808043222085/after_comand-0-err b/tests/command_execution/.commandlogging/1751025255216489808043222085/after_comand-0-err deleted file mode 100644 index fb49b5ea..00000000 --- a/tests/command_execution/.commandlogging/1751025255216489808043222085/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025255.254582,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.063617706298828 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751025255216489808043222085/after_comand-0-out b/tests/command_execution/.commandlogging/1751025255216489808043222085/after_comand-0-out deleted file mode 100644 index b3259a9e..00000000 --- a/tests/command_execution/.commandlogging/1751025255216489808043222085/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025255.2537127,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751025255.356508,2025-06-27T13:54:15,253688353+02:00 -1751025255.459812,2025-06-27T13:54:15,356337987+02:00 -1751025255.56363,2025-06-27T13:54:15,459609936+02:00 -1751025255.6670637,2025-06-27T13:54:15,563437583+02:00 -1751025255.667111,2025-06-27T13:54:15,666883137+02:00 -1751025255.8735282,2025-06-27T13:54:15,770565123+02:00 -1751025255.9762344,2025-06-27T13:54:15,873300552+02:00 -1751025256.0796196,2025-06-27T13:54:15,976132784+02:00 -1751025256.1830308,2025-06-27T13:54:16,079436602+02:00 -1751025256.183084,2025-06-27T13:54:16,182828461+02:00 -1751025256.3885849,2025-06-27T13:54:16,285370153+02:00 -1751025256.4926672,2025-06-27T13:54:16,388388754+02:00 -1751025256.596292,2025-06-27T13:54:16,492477423+02:00 -1751025256.6995318,2025-06-27T13:54:16,596108247+02:00 -1751025256.6995864,2025-06-27T13:54:16,699351579+02:00 -1751025256.906744,2025-06-27T13:54:16,802586769+02:00 -1751025257.0097237,2025-06-27T13:54:16,906497327+02:00 -1751025257.112916,2025-06-27T13:54:17,009548921+02:00 -1751025257.216015,2025-06-27T13:54:17,112734214+02:00 -1751025257.2160592,2025-06-27T13:54:17,215850841+02:00 -hookend -2.064181089401245 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751025255216489808043222085/after_initial_input b/tests/command_execution/.commandlogging/1751025255216489808043222085/after_initial_input deleted file mode 100644 index 3d37ab12..00000000 --- a/tests/command_execution/.commandlogging/1751025255216489808043222085/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025255.2528942,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0002999305725097656 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751025255216489808043222085/hook_function_line-0-err b/tests/command_execution/.commandlogging/1751025255216489808043222085/hook_function_line-0-err deleted file mode 100644 index 993fe08e..00000000 --- a/tests/command_execution/.commandlogging/1751025255216489808043222085/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025255.2556272,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/1751025255216489808043222085/hook_function_line-0-out b/tests/command_execution/.commandlogging/1751025255216489808043222085/hook_function_line-0-out deleted file mode 100644 index e3239dbf..00000000 --- a/tests/command_execution/.commandlogging/1751025255216489808043222085/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751025255.2555933,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751025255.356788,2025-06-27T13:54:15,253688353+02:00 -1751025255.4600282,2025-06-27T13:54:15,356337987+02:00 -1751025255.5638297,2025-06-27T13:54:15,459609936+02:00 -1751025255.667492,2025-06-27T13:54:15,563437583+02:00 -1751025255.667525,2025-06-27T13:54:15,666883137+02:00 -1751025255.873663,2025-06-27T13:54:15,770565123+02:00 -1751025255.9764798,2025-06-27T13:54:15,873300552+02:00 -1751025256.0799773,2025-06-27T13:54:15,976132784+02:00 -1751025256.1832874,2025-06-27T13:54:16,079436602+02:00 -1751025256.183323,2025-06-27T13:54:16,182828461+02:00 -1751025256.3888695,2025-06-27T13:54:16,285370153+02:00 -1751025256.4929733,2025-06-27T13:54:16,388388754+02:00 -1751025256.596549,2025-06-27T13:54:16,492477423+02:00 -1751025256.6998525,2025-06-27T13:54:16,596108247+02:00 -1751025256.7087877,2025-06-27T13:54:16,699351579+02:00 -1751025256.90702,2025-06-27T13:54:16,802586769+02:00 -1751025257.0098987,2025-06-27T13:54:16,906497327+02:00 -1751025257.1131773,2025-06-27T13:54:17,009548921+02:00 -1751025257.2162976,2025-06-27T13:54:17,112734214+02:00 -1751025257.2163846,2025-06-27T13:54:17,215850841+02:00 diff --git a/tests/command_execution/.commandlogging/1751025255216489808043222085/void_input-1-err b/tests/command_execution/.commandlogging/1751025255216489808043222085/void_input-1-err deleted file mode 100644 index 8c1a7856..00000000 --- a/tests/command_execution/.commandlogging/1751025255216489808043222085/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025255.2566733,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/1751025255216489808043222085/void_input-1-out b/tests/command_execution/.commandlogging/1751025255216489808043222085/void_input-1-out deleted file mode 100644 index 0d209a36..00000000 --- a/tests/command_execution/.commandlogging/1751025255216489808043222085/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025255.2568254,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510252836442209649289205695/after_comand-0-err b/tests/command_execution/.commandlogging/17510252836442209649289205695/after_comand-0-err deleted file mode 100644 index fdc98224..00000000 --- a/tests/command_execution/.commandlogging/17510252836442209649289205695/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025283.6297596,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.062788724899292 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510252836442209649289205695/after_comand-0-out b/tests/command_execution/.commandlogging/17510252836442209649289205695/after_comand-0-out deleted file mode 100644 index 67aa4f38..00000000 --- a/tests/command_execution/.commandlogging/17510252836442209649289205695/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025283.6295896,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751025283.731652,2025-06-27T13:54:43,628984917+02:00 -1751025283.8351054,2025-06-27T13:54:43,731472295+02:00 -1751025283.938155,2025-06-27T13:54:43,834896165+02:00 -1751025284.0417483,2025-06-27T13:54:43,937936717+02:00 -1751025284.0417988,2025-06-27T13:54:44,041589324+02:00 -1751025284.247297,2025-06-27T13:54:44,144473946+02:00 -1751025284.3501954,2025-06-27T13:54:44,247199907+02:00 -1751025284.4529274,2025-06-27T13:54:44,350096161+02:00 -1751025284.556302,2025-06-27T13:54:44,452766433+02:00 -1751025284.5563703,2025-06-27T13:54:44,556068369+02:00 -1751025284.7619855,2025-06-27T13:54:44,658731199+02:00 -1751025284.8655388,2025-06-27T13:54:44,761784478+02:00 -1751025284.9688818,2025-06-27T13:54:44,865346091+02:00 -1751025285.0724294,2025-06-27T13:54:44,968710512+02:00 -1751025285.0724807,2025-06-27T13:54:45,072252683+02:00 -1751025285.279233,2025-06-27T13:54:45,175429769+02:00 -1751025285.3826566,2025-06-27T13:54:45,278872693+02:00 -1751025285.4867153,2025-06-27T13:54:45,382490978+02:00 -1751025285.589906,2025-06-27T13:54:45,486518980+02:00 -1751025285.589972,2025-06-27T13:54:45,589731048+02:00 -hookend -2.063058376312256 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510252836442209649289205695/after_initial_input b/tests/command_execution/.commandlogging/17510252836442209649289205695/after_initial_input deleted file mode 100644 index 9db26735..00000000 --- a/tests/command_execution/.commandlogging/17510252836442209649289205695/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025283.628793,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00039577484130859375 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510252836442209649289205695/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510252836442209649289205695/hook_function_line-0-err deleted file mode 100644 index 3bf8f995..00000000 --- a/tests/command_execution/.commandlogging/17510252836442209649289205695/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025283.6312873,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510252836442209649289205695/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510252836442209649289205695/hook_function_line-0-out deleted file mode 100644 index 7b8fe45a..00000000 --- a/tests/command_execution/.commandlogging/17510252836442209649289205695/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751025283.6302855,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751025283.7318416,2025-06-27T13:54:43,628984917+02:00 -1751025283.8355072,2025-06-27T13:54:43,731472295+02:00 -1751025283.9382944,2025-06-27T13:54:43,834896165+02:00 -1751025284.0420263,2025-06-27T13:54:43,937936717+02:00 -1751025284.042182,2025-06-27T13:54:44,041589324+02:00 -1751025284.2475243,2025-06-27T13:54:44,144473946+02:00 -1751025284.350345,2025-06-27T13:54:44,247199907+02:00 -1751025284.453221,2025-06-27T13:54:44,350096161+02:00 -1751025284.5565748,2025-06-27T13:54:44,452766433+02:00 -1751025284.5567024,2025-06-27T13:54:44,556068369+02:00 -1751025284.7623377,2025-06-27T13:54:44,658731199+02:00 -1751025284.865812,2025-06-27T13:54:44,761784478+02:00 -1751025284.9693255,2025-06-27T13:54:44,865346091+02:00 -1751025285.0726624,2025-06-27T13:54:44,968710512+02:00 -1751025285.0727136,2025-06-27T13:54:45,072252683+02:00 -1751025285.2795043,2025-06-27T13:54:45,175429769+02:00 -1751025285.3829813,2025-06-27T13:54:45,278872693+02:00 -1751025285.487003,2025-06-27T13:54:45,382490978+02:00 -1751025285.5903614,2025-06-27T13:54:45,486518980+02:00 -1751025285.590447,2025-06-27T13:54:45,589731048+02:00 diff --git a/tests/command_execution/.commandlogging/17510252836442209649289205695/void_input-1-err b/tests/command_execution/.commandlogging/17510252836442209649289205695/void_input-1-err deleted file mode 100644 index 4dead72f..00000000 --- a/tests/command_execution/.commandlogging/17510252836442209649289205695/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025283.6321473,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510252836442209649289205695/void_input-1-out b/tests/command_execution/.commandlogging/17510252836442209649289205695/void_input-1-out deleted file mode 100644 index 31534854..00000000 --- a/tests/command_execution/.commandlogging/17510252836442209649289205695/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025283.6316533,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510254007104987491064385613/after_comand-0-err b/tests/command_execution/.commandlogging/17510254007104987491064385613/after_comand-0-err deleted file mode 100644 index 031e00fa..00000000 --- a/tests/command_execution/.commandlogging/17510254007104987491064385613/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025400.6019657,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0626652240753174 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254007104987491064385613/after_comand-0-out b/tests/command_execution/.commandlogging/17510254007104987491064385613/after_comand-0-out deleted file mode 100644 index f8b7c5f2..00000000 --- a/tests/command_execution/.commandlogging/17510254007104987491064385613/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025400.6017509,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751025400.7049963,2025-06-27T13:56:40,601322087+02:00 -1751025400.8078349,2025-06-27T13:56:40,704751064+02:00 -1751025400.9112964,2025-06-27T13:56:40,807659938+02:00 -1751025401.0145772,2025-06-27T13:56:40,911115325+02:00 -1751025401.0146244,2025-06-27T13:56:41,014407597+02:00 -1751025401.220799,2025-06-27T13:56:41,117867751+02:00 -1751025401.3237505,2025-06-27T13:56:41,220598557+02:00 -1751025401.427161,2025-06-27T13:56:41,323574908+02:00 -1751025401.5302453,2025-06-27T13:56:41,426941400+02:00 -1751025401.530294,2025-06-27T13:56:41,530051316+02:00 -1751025401.7355483,2025-06-27T13:56:41,632335633+02:00 -1751025401.838773,2025-06-27T13:56:41,735368091+02:00 -1751025401.9422975,2025-06-27T13:56:41,838618391+02:00 -1751025402.0461788,2025-06-27T13:56:41,942109423+02:00 -1751025402.0462449,2025-06-27T13:56:42,046002601+02:00 -1751025402.2531793,2025-06-27T13:56:42,149520595+02:00 -1751025402.3564444,2025-06-27T13:56:42,252933239+02:00 -1751025402.4599247,2025-06-27T13:56:42,356268870+02:00 -1751025402.563105,2025-06-27T13:56:42,459743811+02:00 -1751025402.5631585,2025-06-27T13:56:42,562881829+02:00 -hookend -2.062818765640259 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254007104987491064385613/after_initial_input b/tests/command_execution/.commandlogging/17510254007104987491064385613/after_initial_input deleted file mode 100644 index cc77db1b..00000000 --- a/tests/command_execution/.commandlogging/17510254007104987491064385613/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025400.601091,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00038504600524902344 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254007104987491064385613/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510254007104987491064385613/hook_function_line-0-err deleted file mode 100644 index 7f07bd22..00000000 --- a/tests/command_execution/.commandlogging/17510254007104987491064385613/hook_function_line-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025400.6035602,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err -hookend -2.0628654956817627 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254007104987491064385613/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510254007104987491064385613/hook_function_line-0-out deleted file mode 100644 index caca85c8..00000000 --- a/tests/command_execution/.commandlogging/17510254007104987491064385613/hook_function_line-0-out +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025400.6035874,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -hookend -2.062034845352173 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254007104987491064385613/void_input-1-err b/tests/command_execution/.commandlogging/17510254007104987491064385613/void_input-1-err deleted file mode 100644 index ef84ebb6..00000000 --- a/tests/command_execution/.commandlogging/17510254007104987491064385613/void_input-1-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025400.6050675,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err -hookend -2.0628859996795654 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254007104987491064385613/void_input-1-out b/tests/command_execution/.commandlogging/17510254007104987491064385613/void_input-1-out deleted file mode 100644 index 45d117a3..00000000 --- a/tests/command_execution/.commandlogging/17510254007104987491064385613/void_input-1-out +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025400.6048365,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out -hookend -2.062720537185669 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254272071111963399063064/after_comand-0-err b/tests/command_execution/.commandlogging/17510254272071111963399063064/after_comand-0-err deleted file mode 100644 index 628242ab..00000000 --- a/tests/command_execution/.commandlogging/17510254272071111963399063064/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025427.3126733,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.067309856414795 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254272071111963399063064/after_comand-0-out b/tests/command_execution/.commandlogging/17510254272071111963399063064/after_comand-0-out deleted file mode 100644 index 062c1b4c..00000000 --- a/tests/command_execution/.commandlogging/17510254272071111963399063064/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025427.3130336,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751025427.4159002,2025-06-27T13:57:07,312647433+02:00 -1751025427.5196712,2025-06-27T13:57:07,415686387+02:00 -1751025427.6233597,2025-06-27T13:57:07,519492051+02:00 -1751025427.7265003,2025-06-27T13:57:07,623176546+02:00 -1751025427.7265487,2025-06-27T13:57:07,726298105+02:00 -1751025427.9331162,2025-06-27T13:57:07,829728272+02:00 -1751025428.0366676,2025-06-27T13:57:07,932903510+02:00 -1751025428.1405318,2025-06-27T13:57:08,036489990+02:00 -1751025428.2440665,2025-06-27T13:57:08,140335863+02:00 -1751025428.244124,2025-06-27T13:57:08,243828599+02:00 -1751025428.4495404,2025-06-27T13:57:08,346365402+02:00 -1751025428.5537305,2025-06-27T13:57:08,449343720+02:00 -1751025428.6564236,2025-06-27T13:57:08,553544860+02:00 -1751025428.7604697,2025-06-27T13:57:08,656265249+02:00 -1751025428.7605286,2025-06-27T13:57:08,760265908+02:00 -1751025428.967604,2025-06-27T13:57:08,863605836+02:00 -1751025429.0706356,2025-06-27T13:57:08,967406636+02:00 -1751025429.1744974,2025-06-27T13:57:09,070467417+02:00 -1751025429.278072,2025-06-27T13:57:09,174292774+02:00 -1751025429.278193,2025-06-27T13:57:09,277767135+02:00 -hookend -2.0670218467712402 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254272071111963399063064/after_initial_input b/tests/command_execution/.commandlogging/17510254272071111963399063064/after_initial_input deleted file mode 100644 index b1edefa8..00000000 --- a/tests/command_execution/.commandlogging/17510254272071111963399063064/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025427.3122406,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00040030479431152344 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510254272071111963399063064/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510254272071111963399063064/hook_function_line-0-err deleted file mode 100644 index 38bf57e1..00000000 --- a/tests/command_execution/.commandlogging/17510254272071111963399063064/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025427.314983,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510254272071111963399063064/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510254272071111963399063064/hook_function_line-0-out deleted file mode 100644 index 3e2e1f78..00000000 --- a/tests/command_execution/.commandlogging/17510254272071111963399063064/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751025427.3147182,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751025427.4162707,2025-06-27T13:57:07,312647433+02:00 -1751025427.519971,2025-06-27T13:57:07,415686387+02:00 -1751025427.6236577,2025-06-27T13:57:07,519492051+02:00 -1751025427.7267423,2025-06-27T13:57:07,623176546+02:00 -1751025427.7267768,2025-06-27T13:57:07,726298105+02:00 -1751025427.9333644,2025-06-27T13:57:07,829728272+02:00 -1751025428.0368416,2025-06-27T13:57:07,932903510+02:00 -1751025428.140707,2025-06-27T13:57:08,036489990+02:00 -1751025428.2443616,2025-06-27T13:57:08,140335863+02:00 -1751025428.244401,2025-06-27T13:57:08,243828599+02:00 -1751025428.4498036,2025-06-27T13:57:08,346365402+02:00 -1751025428.55385,2025-06-27T13:57:08,449343720+02:00 -1751025428.6566694,2025-06-27T13:57:08,553544860+02:00 -1751025428.7606652,2025-06-27T13:57:08,656265249+02:00 -1751025428.7607744,2025-06-27T13:57:08,760265908+02:00 -1751025428.967787,2025-06-27T13:57:08,863605836+02:00 -1751025429.070797,2025-06-27T13:57:08,967406636+02:00 -1751025429.1747088,2025-06-27T13:57:09,070467417+02:00 -1751025429.278639,2025-06-27T13:57:09,174292774+02:00 -1751025429.278738,2025-06-27T13:57:09,277767135+02:00 diff --git a/tests/command_execution/.commandlogging/17510254272071111963399063064/void_input-1-err b/tests/command_execution/.commandlogging/17510254272071111963399063064/void_input-1-err deleted file mode 100644 index 3b2362a8..00000000 --- a/tests/command_execution/.commandlogging/17510254272071111963399063064/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025427.3157647,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510254272071111963399063064/void_input-1-out b/tests/command_execution/.commandlogging/17510254272071111963399063064/void_input-1-out deleted file mode 100644 index 58decf47..00000000 --- a/tests/command_execution/.commandlogging/17510254272071111963399063064/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025427.3153248,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/1751025471359917208436063578/after_comand-0-err b/tests/command_execution/.commandlogging/1751025471359917208436063578/after_comand-0-err deleted file mode 100644 index 68e42f0c..00000000 --- a/tests/command_execution/.commandlogging/1751025471359917208436063578/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025472.0001616,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0699265003204346 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751025471359917208436063578/after_comand-0-out b/tests/command_execution/.commandlogging/1751025471359917208436063578/after_comand-0-out deleted file mode 100644 index 25c8385c..00000000 --- a/tests/command_execution/.commandlogging/1751025471359917208436063578/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025471.9996173,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751025472.103233,2025-06-27T13:57:51,999691971+02:00 -1751025472.2069929,2025-06-27T13:57:52,103054820+02:00 -1751025472.310603,2025-06-27T13:57:52,206780302+02:00 -1751025472.4142075,2025-06-27T13:57:52,310425364+02:00 -1751025472.4142647,2025-06-27T13:57:52,414016958+02:00 -1751025472.6214862,2025-06-27T13:57:52,518183417+02:00 -1751025472.7248814,2025-06-27T13:57:52,621301550+02:00 -1751025472.8281837,2025-06-27T13:57:52,724716180+02:00 -1751025472.9316301,2025-06-27T13:57:52,827979880+02:00 -1751025472.9316838,2025-06-27T13:57:52,931447658+02:00 -1751025473.137645,2025-06-27T13:57:53,033927070+02:00 -1751025473.2416506,2025-06-27T13:57:53,137451450+02:00 -1751025473.3450162,2025-06-27T13:57:53,241413483+02:00 -1751025473.4486926,2025-06-27T13:57:53,344834586+02:00 -1751025473.4487476,2025-06-27T13:57:53,448517416+02:00 -1751025473.6565785,2025-06-27T13:57:53,552931057+02:00 -1751025473.760838,2025-06-27T13:57:53,656359223+02:00 -1751025473.8646398,2025-06-27T13:57:53,760619311+02:00 -1751025473.9682086,2025-06-27T13:57:53,864466727+02:00 -1751025473.968261,2025-06-27T13:57:53,968019928+02:00 -hookend -2.0702853202819824 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751025471359917208436063578/after_initial_input b/tests/command_execution/.commandlogging/1751025471359917208436063578/after_initial_input deleted file mode 100644 index 7b845efa..00000000 --- a/tests/command_execution/.commandlogging/1751025471359917208436063578/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025471.9995499,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0004725456237792969 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751025472359917208436063578/hook_function_line-0-err b/tests/command_execution/.commandlogging/1751025472359917208436063578/hook_function_line-0-err deleted file mode 100644 index ed69af92..00000000 --- a/tests/command_execution/.commandlogging/1751025472359917208436063578/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025472.0019157,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/1751025472359917208436063578/hook_function_line-0-out b/tests/command_execution/.commandlogging/1751025472359917208436063578/hook_function_line-0-out deleted file mode 100644 index 68db9e36..00000000 --- a/tests/command_execution/.commandlogging/1751025472359917208436063578/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751025472.0009913,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751025472.1035218,2025-06-27T13:57:51,999691971+02:00 -1751025472.2072415,2025-06-27T13:57:52,103054820+02:00 -1751025472.3108518,2025-06-27T13:57:52,206780302+02:00 -1751025472.4146404,2025-06-27T13:57:52,310425364+02:00 -1751025472.4146836,2025-06-27T13:57:52,414016958+02:00 -1751025472.6218264,2025-06-27T13:57:52,518183417+02:00 -1751025472.7251706,2025-06-27T13:57:52,621301550+02:00 -1751025472.828446,2025-06-27T13:57:52,724716180+02:00 -1751025472.931876,2025-06-27T13:57:52,827979880+02:00 -1751025472.9319108,2025-06-27T13:57:52,931447658+02:00 -1751025473.1380885,2025-06-27T13:57:53,033927070+02:00 -1751025473.2418451,2025-06-27T13:57:53,137451450+02:00 -1751025473.3453367,2025-06-27T13:57:53,241413483+02:00 -1751025473.4491801,2025-06-27T13:57:53,344834586+02:00 -1751025473.4493265,2025-06-27T13:57:53,448517416+02:00 -1751025473.6571343,2025-06-27T13:57:53,552931057+02:00 -1751025473.7611742,2025-06-27T13:57:53,656359223+02:00 -1751025473.8649185,2025-06-27T13:57:53,760619311+02:00 -1751025473.9687433,2025-06-27T13:57:53,864466727+02:00 -1751025473.968857,2025-06-27T13:57:53,968019928+02:00 diff --git a/tests/command_execution/.commandlogging/1751025472359917208436063578/void_input-1-err b/tests/command_execution/.commandlogging/1751025472359917208436063578/void_input-1-err deleted file mode 100644 index e8057b13..00000000 --- a/tests/command_execution/.commandlogging/1751025472359917208436063578/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025472.003143,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/1751025472359917208436063578/void_input-1-out b/tests/command_execution/.commandlogging/1751025472359917208436063578/void_input-1-out deleted file mode 100644 index f6e3c95c..00000000 --- a/tests/command_execution/.commandlogging/1751025472359917208436063578/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025472.0028734,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/__mergehookfunction-0-err b/tests/command_execution/.commandlogging/17510255072336065249091312191/__mergehookfunction-0-err deleted file mode 100644 index 01374a28..00000000 --- a/tests/command_execution/.commandlogging/17510255072336065249091312191/__mergehookfunction-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025507.1326103,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-err -hookend -0.0003523826599121094 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/__mergehookfunction-0-out b/tests/command_execution/.commandlogging/17510255072336065249091312191/__mergehookfunction-0-out deleted file mode 100644 index 5899e636..00000000 --- a/tests/command_execution/.commandlogging/17510255072336065249091312191/__mergehookfunction-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025507.1323357,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,__mergehookfunction-0-out -1751025507.2346148,2025-06-27T13:58:27,130749451+02:00 -1751025507.337919,2025-06-27T13:58:27,233897847+02:00 -1751025507.44189,2025-06-27T13:58:27,337546180+02:00 -1751025507.5458574,2025-06-27T13:58:27,441460414+02:00 -1751025507.545888,2025-06-27T13:58:27,545399628+02:00 -1751025507.7519422,2025-06-27T13:58:27,648890113+02:00 -1751025507.8555622,2025-06-27T13:58:27,751706052+02:00 -1751025507.9594657,2025-06-27T13:58:27,855190224+02:00 -1751025508.0632613,2025-06-27T13:58:27,958977819+02:00 -1751025508.0632975,2025-06-27T13:58:28,062679061+02:00 -1751025508.2687626,2025-06-27T13:58:28,165040508+02:00 -1751025508.3719714,2025-06-27T13:58:28,268331798+02:00 -1751025508.4757109,2025-06-27T13:58:28,371515725+02:00 -1751025508.5785446,2025-06-27T13:58:28,475195095+02:00 -1751025508.5785792,2025-06-27T13:58:28,578055933+02:00 -1751025508.786188,2025-06-27T13:58:28,681654434+02:00 -1751025508.8899014,2025-06-27T13:58:28,785640714+02:00 -1751025508.993785,2025-06-27T13:58:28,889422008+02:00 -1751025509.097878,2025-06-27T13:58:28,993317766+02:00 -1751025509.0979147,2025-06-27T13:58:29,097475043+02:00 -hookend -2.0685653686523438 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/after_comand-0-err b/tests/command_execution/.commandlogging/17510255072336065249091312191/after_comand-0-err deleted file mode 100644 index 68b7c48f..00000000 --- a/tests/command_execution/.commandlogging/17510255072336065249091312191/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025507.1311936,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.068220376968384 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/after_comand-0-out b/tests/command_execution/.commandlogging/17510255072336065249091312191/after_comand-0-out deleted file mode 100644 index e2846429..00000000 --- a/tests/command_execution/.commandlogging/17510255072336065249091312191/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025507.131167,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751025507.234273,2025-06-27T13:58:27,130749451+02:00 -1751025507.3377213,2025-06-27T13:58:27,233897847+02:00 -1751025507.441636,2025-06-27T13:58:27,337546180+02:00 -1751025507.5455859,2025-06-27T13:58:27,441460414+02:00 -1751025507.5456324,2025-06-27T13:58:27,545399628+02:00 -1751025507.7517908,2025-06-27T13:58:27,648890113+02:00 -1751025507.8554025,2025-06-27T13:58:27,751706052+02:00 -1751025507.959207,2025-06-27T13:58:27,855190224+02:00 -1751025508.062907,2025-06-27T13:58:27,958977819+02:00 -1751025508.0629838,2025-06-27T13:58:28,062679061+02:00 -1751025508.2685056,2025-06-27T13:58:28,165040508+02:00 -1751025508.3716784,2025-06-27T13:58:28,268331798+02:00 -1751025508.4753897,2025-06-27T13:58:28,371515725+02:00 -1751025508.5782204,2025-06-27T13:58:28,475195095+02:00 -1751025508.5782695,2025-06-27T13:58:28,578055933+02:00 -1751025508.7858386,2025-06-27T13:58:28,681654434+02:00 -1751025508.8896294,2025-06-27T13:58:28,785640714+02:00 -1751025508.993515,2025-06-27T13:58:28,889422008+02:00 -1751025509.0976436,2025-06-27T13:58:28,993317766+02:00 -1751025509.0977015,2025-06-27T13:58:29,097475043+02:00 -hookend -2.0682644844055176 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/after_initial_input b/tests/command_execution/.commandlogging/17510255072336065249091312191/after_initial_input deleted file mode 100644 index b207b3e0..00000000 --- a/tests/command_execution/.commandlogging/17510255072336065249091312191/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025507.130459,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00041604042053222656 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/hook_function-1-out b/tests/command_execution/.commandlogging/17510255072336065249091312191/hook_function-1-out deleted file mode 100644 index 2ed47f45..00000000 --- a/tests/command_execution/.commandlogging/17510255072336065249091312191/hook_function-1-out +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025507.1336844,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function-1-out -hookend -2.0691657066345215 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-1-err b/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-1-err deleted file mode 100644 index 5a824cf3..00000000 --- a/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-1-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025507.1334321,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err -hookend -2.0691885948181152 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-2-err b/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-2-err deleted file mode 100644 index 78dc8653..00000000 --- a/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-2-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025507.1347325,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-err -hookend -2.069275379180908 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-2-out b/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-2-out deleted file mode 100644 index ceccca7e..00000000 --- a/tests/command_execution/.commandlogging/17510255072336065249091312191/void_input-2-out +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025507.1342754,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-out -hookend -2.0694198608398438 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255276025331534543549503/after_comand-0-err b/tests/command_execution/.commandlogging/17510255276025331534543549503/after_comand-0-err deleted file mode 100644 index 0dedfb11..00000000 --- a/tests/command_execution/.commandlogging/17510255276025331534543549503/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025527.711611,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0606279373168945 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255276025331534543549503/after_comand-0-out b/tests/command_execution/.commandlogging/17510255276025331534543549503/after_comand-0-out deleted file mode 100644 index 5e2a657e..00000000 --- a/tests/command_execution/.commandlogging/17510255276025331534543549503/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025527.7119074,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751025527.8139644,2025-06-27T13:58:47,711427243+02:00 -1751025527.9168062,2025-06-27T13:58:47,813825594+02:00 -1751025528.0209754,2025-06-27T13:58:47,916619974+02:00 -1751025528.1243684,2025-06-27T13:58:48,020775569+02:00 -1751025528.1244204,2025-06-27T13:58:48,124181222+02:00 -1751025528.330576,2025-06-27T13:58:48,227344498+02:00 -1751025528.4335198,2025-06-27T13:58:48,330418944+02:00 -1751025528.5368764,2025-06-27T13:58:48,433431433+02:00 -1751025528.6395414,2025-06-27T13:58:48,536715067+02:00 -1751025528.6395843,2025-06-27T13:58:48,639405603+02:00 -1751025528.8444307,2025-06-27T13:58:48,741522411+02:00 -1751025528.9473386,2025-06-27T13:58:48,844228325+02:00 -1751025529.0510168,2025-06-27T13:58:48,947243059+02:00 -1751025529.1541693,2025-06-27T13:58:49,050812356+02:00 -1751025529.1542137,2025-06-27T13:58:49,153999009+02:00 -1751025529.3615324,2025-06-27T13:58:49,257799192+02:00 -1751025529.4643962,2025-06-27T13:58:49,361349528+02:00 -1751025529.567755,2025-06-27T13:58:49,464308508+02:00 -1751025529.6707795,2025-06-27T13:58:49,567581701+02:00 -1751025529.670833,2025-06-27T13:58:49,670626448+02:00 -hookend -2.0605273246765137 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255276025331534543549503/after_initial_input b/tests/command_execution/.commandlogging/17510255276025331534543549503/after_initial_input deleted file mode 100644 index 27bec6a7..00000000 --- a/tests/command_execution/.commandlogging/17510255276025331534543549503/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025527.71133,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00039458274841308594 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510255276025331534543549503/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510255276025331534543549503/hook_function_line-0-err deleted file mode 100644 index e62e826b..00000000 --- a/tests/command_execution/.commandlogging/17510255276025331534543549503/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025527.7133007,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510255276025331534543549503/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510255276025331534543549503/hook_function_line-0-out deleted file mode 100644 index a808773f..00000000 --- a/tests/command_execution/.commandlogging/17510255276025331534543549503/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751025527.7134886,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751025527.8140647,2025-06-27T13:58:47,711427243+02:00 -1751025527.9169397,2025-06-27T13:58:47,813825594+02:00 -1751025528.021276,2025-06-27T13:58:47,916619974+02:00 -1751025528.124598,2025-06-27T13:58:48,020775569+02:00 -1751025528.1246364,2025-06-27T13:58:48,124181222+02:00 -1751025528.3308501,2025-06-27T13:58:48,227344498+02:00 -1751025528.4339871,2025-06-27T13:58:48,330418944+02:00 -1751025528.5371954,2025-06-27T13:58:48,433431433+02:00 -1751025528.6397917,2025-06-27T13:58:48,536715067+02:00 -1751025528.6398268,2025-06-27T13:58:48,639405603+02:00 -1751025528.8447032,2025-06-27T13:58:48,741522411+02:00 -1751025528.9475691,2025-06-27T13:58:48,844228325+02:00 -1751025529.0513563,2025-06-27T13:58:48,947243059+02:00 -1751025529.1544342,2025-06-27T13:58:49,050812356+02:00 -1751025529.1544662,2025-06-27T13:58:49,153999009+02:00 -1751025529.3618002,2025-06-27T13:58:49,257799192+02:00 -1751025529.4646258,2025-06-27T13:58:49,361349528+02:00 -1751025529.5680122,2025-06-27T13:58:49,464308508+02:00 -1751025529.670993,2025-06-27T13:58:49,567581701+02:00 -1751025529.6710644,2025-06-27T13:58:49,670626448+02:00 diff --git a/tests/command_execution/.commandlogging/17510256027664721227509456362/after_comand-0-err b/tests/command_execution/.commandlogging/17510256027664721227509456362/after_comand-0-err deleted file mode 100644 index 95e462bc..00000000 --- a/tests/command_execution/.commandlogging/17510256027664721227509456362/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025602.543343,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0634477138519287 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510256027664721227509456362/after_comand-0-out b/tests/command_execution/.commandlogging/17510256027664721227509456362/after_comand-0-out deleted file mode 100644 index 48c7ad25..00000000 --- a/tests/command_execution/.commandlogging/17510256027664721227509456362/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025602.5431175,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751025602.6467426,2025-06-27T14:00:02,542544049+02:00 -1751025602.7506711,2025-06-27T14:00:02,646505528+02:00 -1751025602.85362,2025-06-27T14:00:02,750485007+02:00 -1751025602.9565606,2025-06-27T14:00:02,853443572+02:00 -1751025602.9566293,2025-06-27T14:00:02,956354685+02:00 -1751025603.1617093,2025-06-27T14:00:03,059264600+02:00 -1751025603.26436,2025-06-27T14:00:03,161491660+02:00 -1751025603.367914,2025-06-27T14:00:03,264158433+02:00 -1751025603.4715135,2025-06-27T14:00:03,367690308+02:00 -1751025603.4715717,2025-06-27T14:00:03,471326874+02:00 -1751025603.6764874,2025-06-27T14:00:03,573731886+02:00 -1751025603.780525,2025-06-27T14:00:03,676326441+02:00 -1751025603.884776,2025-06-27T14:00:03,780319808+02:00 -1751025603.9883416,2025-06-27T14:00:03,884556561+02:00 -1751025603.9883945,2025-06-27T14:00:03,988150694+02:00 -1751025604.194678,2025-06-27T14:00:04,091389843+02:00 -1751025604.2980683,2025-06-27T14:00:04,194495825+02:00 -1751025604.4016473,2025-06-27T14:00:04,297964011+02:00 -1751025604.5045235,2025-06-27T14:00:04,401458410+02:00 -1751025604.504574,2025-06-27T14:00:04,504363205+02:00 -hookend -2.063692092895508 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510256027664721227509456362/after_initial_input b/tests/command_execution/.commandlogging/17510256027664721227509456362/after_initial_input deleted file mode 100644 index 6cc0a383..00000000 --- a/tests/command_execution/.commandlogging/17510256027664721227509456362/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025602.542486,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00041747093200683594 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510256027664721227509456362/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510256027664721227509456362/hook_function_line-0-err deleted file mode 100644 index 9ba974a9..00000000 --- a/tests/command_execution/.commandlogging/17510256027664721227509456362/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025602.5448723,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510256027664721227509456362/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510256027664721227509456362/hook_function_line-0-out deleted file mode 100644 index 72d1d66d..00000000 --- a/tests/command_execution/.commandlogging/17510256027664721227509456362/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751025602.5447268,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751025602.6469595,2025-06-27T14:00:02,542544049+02:00 -1751025602.7508574,2025-06-27T14:00:02,646505528+02:00 -1751025602.8537726,2025-06-27T14:00:02,750485007+02:00 -1751025602.9568024,2025-06-27T14:00:02,853443572+02:00 -1751025602.9568424,2025-06-27T14:00:02,956354685+02:00 -1751025603.161894,2025-06-27T14:00:03,059264600+02:00 -1751025603.264556,2025-06-27T14:00:03,161491660+02:00 -1751025603.368203,2025-06-27T14:00:03,264158433+02:00 -1751025603.4717526,2025-06-27T14:00:03,367690308+02:00 -1751025603.4719052,2025-06-27T14:00:03,471326874+02:00 -1751025603.6767697,2025-06-27T14:00:03,573731886+02:00 -1751025603.780762,2025-06-27T14:00:03,676326441+02:00 -1751025603.885012,2025-06-27T14:00:03,780319808+02:00 -1751025603.9885695,2025-06-27T14:00:03,884556561+02:00 -1751025603.9886894,2025-06-27T14:00:03,988150694+02:00 -1751025604.194844,2025-06-27T14:00:04,091389843+02:00 -1751025604.2983108,2025-06-27T14:00:04,194495825+02:00 -1751025604.4017768,2025-06-27T14:00:04,297964011+02:00 -1751025604.5048475,2025-06-27T14:00:04,401458410+02:00 -1751025604.5050457,2025-06-27T14:00:04,504363205+02:00 diff --git a/tests/command_execution/.commandlogging/17510256027664721227509456362/void_input-1-err b/tests/command_execution/.commandlogging/17510256027664721227509456362/void_input-1-err deleted file mode 100644 index bbf1228c..00000000 --- a/tests/command_execution/.commandlogging/17510256027664721227509456362/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025602.5459979,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510256027664721227509456362/void_input-1-out b/tests/command_execution/.commandlogging/17510256027664721227509456362/void_input-1-out deleted file mode 100644 index 83f06c30..00000000 --- a/tests/command_execution/.commandlogging/17510256027664721227509456362/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025602.5456643,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510256224287177846385816737/after_comand-0-err b/tests/command_execution/.commandlogging/17510256224287177846385816737/after_comand-0-err deleted file mode 100644 index dbd71724..00000000 --- a/tests/command_execution/.commandlogging/17510256224287177846385816737/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025622.326613,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.066263198852539 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510256224287177846385816737/after_comand-0-out b/tests/command_execution/.commandlogging/17510256224287177846385816737/after_comand-0-out deleted file mode 100644 index 5a5ce1c8..00000000 --- a/tests/command_execution/.commandlogging/17510256224287177846385816737/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751025622.3262641,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751025622.429025,2025-06-27T14:00:22,325733299+02:00 -1751025622.5330932,2025-06-27T14:00:22,428878837+02:00 -1751025622.636672,2025-06-27T14:00:22,532867926+02:00 -1751025622.7408543,2025-06-27T14:00:22,636475143+02:00 -1751025622.7409136,2025-06-27T14:00:22,740654805+02:00 -1751025622.9466255,2025-06-27T14:00:22,843731354+02:00 -1751025623.0495155,2025-06-27T14:00:22,946465152+02:00 -1751025623.152981,2025-06-27T14:00:23,049348307+02:00 -1751025623.2566907,2025-06-27T14:00:23,152778527+02:00 -1751025623.2567353,2025-06-27T14:00:23,256524604+02:00 -1751025623.4640906,2025-06-27T14:00:23,360310786+02:00 -1751025623.5678632,2025-06-27T14:00:23,463878972+02:00 -1751025623.671694,2025-06-27T14:00:23,567674892+02:00 -1751025623.774292,2025-06-27T14:00:23,671489244+02:00 -1751025623.7743518,2025-06-27T14:00:23,774083170+02:00 -1751025623.980715,2025-06-27T14:00:23,877549477+02:00 -1751025624.0833313,2025-06-27T14:00:23,980540683+02:00 -1751025624.186854,2025-06-27T14:00:24,083154155+02:00 -1751025624.2907655,2025-06-27T14:00:24,186650056+02:00 -1751025624.2908206,2025-06-27T14:00:24,290588206+02:00 -hookend -2.066553831100464 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510256224287177846385816737/after_initial_input b/tests/command_execution/.commandlogging/17510256224287177846385816737/after_initial_input deleted file mode 100644 index 0af1c9b2..00000000 --- a/tests/command_execution/.commandlogging/17510256224287177846385816737/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025622.3254218,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00042891502380371094 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510256224287177846385816737/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510256224287177846385816737/hook_function_line-0-err deleted file mode 100644 index f0c2ff8d..00000000 --- a/tests/command_execution/.commandlogging/17510256224287177846385816737/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025622.3284142,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510256224287177846385816737/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510256224287177846385816737/hook_function_line-0-out deleted file mode 100644 index 908dd2d8..00000000 --- a/tests/command_execution/.commandlogging/17510256224287177846385816737/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751025622.3281448,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751025622.4293225,2025-06-27T14:00:22,325733299+02:00 -1751025622.5333452,2025-06-27T14:00:22,428878837+02:00 -1751025622.6369295,2025-06-27T14:00:22,532867926+02:00 -1751025622.7411463,2025-06-27T14:00:22,636475143+02:00 -1751025622.7411833,2025-06-27T14:00:22,740654805+02:00 -1751025622.9467833,2025-06-27T14:00:22,843731354+02:00 -1751025623.049717,2025-06-27T14:00:22,946465152+02:00 -1751025623.153167,2025-06-27T14:00:23,049348307+02:00 -1751025623.2569754,2025-06-27T14:00:23,152778527+02:00 -1751025623.2570112,2025-06-27T14:00:23,256524604+02:00 -1751025623.4643643,2025-06-27T14:00:23,360310786+02:00 -1751025623.5680466,2025-06-27T14:00:23,463878972+02:00 -1751025623.671895,2025-06-27T14:00:23,567674892+02:00 -1751025623.7746,2025-06-27T14:00:23,671489244+02:00 -1751025623.7747304,2025-06-27T14:00:23,774083170+02:00 -1751025623.980818,2025-06-27T14:00:23,877549477+02:00 -1751025624.0835953,2025-06-27T14:00:23,980540683+02:00 -1751025624.187138,2025-06-27T14:00:24,083154155+02:00 -1751025624.291031,2025-06-27T14:00:24,186650056+02:00 -1751025624.29106,2025-06-27T14:00:24,290588206+02:00 diff --git a/tests/command_execution/.commandlogging/17510256224287177846385816737/void_input-1-err b/tests/command_execution/.commandlogging/17510256224287177846385816737/void_input-1-err deleted file mode 100644 index b25b3475..00000000 --- a/tests/command_execution/.commandlogging/17510256224287177846385816737/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025622.3293867,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510256224287177846385816737/void_input-1-out b/tests/command_execution/.commandlogging/17510256224287177846385816737/void_input-1-out deleted file mode 100644 index 53ccfa05..00000000 --- a/tests/command_execution/.commandlogging/17510256224287177846385816737/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025622.3290567,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510258395706702362975748128/after_comand-0-err b/tests/command_execution/.commandlogging/17510258395706702362975748128/after_comand-0-err deleted file mode 100644 index 948d3aa9..00000000 --- a/tests/command_execution/.commandlogging/17510258395706702362975748128/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025839.4475145,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -4.0271735191345215 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510258395706702362975748128/after_comand-0-out b/tests/command_execution/.commandlogging/17510258395706702362975748128/after_comand-0-out deleted file mode 100644 index e2212f63..00000000 --- a/tests/command_execution/.commandlogging/17510258395706702362975748128/after_comand-0-out +++ /dev/null @@ -1,43 +0,0 @@ -hookstart,command,location -1751025839.4467447,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751025839.5501387,2025-06-27T14:03:59,446541473+02:00 -1751025839.653766,2025-06-27T14:03:59,549817680+02:00 -1751025839.757669,2025-06-27T14:03:59,653572759+02:00 -1751025839.861193,2025-06-27T14:03:59,757461401+02:00 -1751025839.861239,2025-06-27T14:03:59,860991490+02:00 -1751025840.066302,2025-06-27T14:03:59,963824123+02:00 -1751025840.1700182,2025-06-27T14:04:00,066115435+02:00 -1751025840.273529,2025-06-27T14:04:00,169797397+02:00 -1751025840.3760376,2025-06-27T14:04:00,273358132+02:00 -1751025840.3760777,2025-06-27T14:04:00,375953114+02:00 -1751025840.5808022,2025-06-27T14:04:00,478111166+02:00 -1751025840.6845968,2025-06-27T14:04:00,580631585+02:00 -1751025840.788011,2025-06-27T14:04:00,684393486+02:00 -1751025840.891531,2025-06-27T14:04:00,787828306+02:00 -1751025840.8915858,2025-06-27T14:04:00,891340761+02:00 -1751025841.0982122,2025-06-27T14:04:00,994669748+02:00 -1751025841.2023964,2025-06-27T14:04:01,098032363+02:00 -1751025841.3060384,2025-06-27T14:04:01,202185716+02:00 -1751025841.409874,2025-06-27T14:04:01,305841799+02:00 -1751025841.4099278,2025-06-27T14:04:01,409708679+02:00 -1751025841.615314,2025-06-27T14:04:01,512277835+02:00 -1751025841.7180119,2025-06-27T14:04:01,615106691+02:00 -1751025841.8207154,2025-06-27T14:04:01,717871635+02:00 -1751025841.9235218,2025-06-27T14:04:01,820620802+02:00 -1751025841.9235637,2025-06-27T14:04:01,923365293+02:00 -1751025842.1294136,2025-06-27T14:04:02,025889307+02:00 -1751025842.2325792,2025-06-27T14:04:02,129241997+02:00 -1751025842.3365586,2025-06-27T14:04:02,232432008+02:00 -1751025842.4403107,2025-06-27T14:04:02,336346806+02:00 -1751025842.440378,2025-06-27T14:04:02,440114558+02:00 -1751025842.6480255,2025-06-27T14:04:02,544045469+02:00 -1751025842.751901,2025-06-27T14:04:02,647809619+02:00 -1751025842.8555825,2025-06-27T14:04:02,751723208+02:00 -1751025842.9589014,2025-06-27T14:04:02,855375249+02:00 -1751025842.9589655,2025-06-27T14:04:02,958729254+02:00 -1751025843.1665258,2025-06-27T14:04:03,062269380+02:00 -1751025843.270394,2025-06-27T14:04:03,166345456+02:00 -1751025843.3732042,2025-06-27T14:04:03,270212008+02:00 -1751025843.47431,2025-06-27T14:04:03,373016217+02:00 -hookend -4.027923583984375 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510258395706702362975748128/after_initial_input b/tests/command_execution/.commandlogging/17510258395706702362975748128/after_initial_input deleted file mode 100644 index 726ecfc0..00000000 --- a/tests/command_execution/.commandlogging/17510258395706702362975748128/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751025839.4467099,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00040340423583984375 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510258415706702362975748128/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510258415706702362975748128/hook_function_line-0-err deleted file mode 100644 index 7c317f2b..00000000 --- a/tests/command_execution/.commandlogging/17510258415706702362975748128/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025841.4511003,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510258415706702362975748128/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510258415706702362975748128/hook_function_line-0-out deleted file mode 100644 index a1382bf1..00000000 --- a/tests/command_execution/.commandlogging/17510258415706702362975748128/hook_function_line-0-out +++ /dev/null @@ -1,41 +0,0 @@ -hookstart,command,location -1751025841.4504118,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751025841.4505067,2025-06-27T14:03:59,446541473+02:00 -1751025841.450526,2025-06-27T14:03:59,549817680+02:00 -1751025841.450539,2025-06-27T14:03:59,653572759+02:00 -1751025841.4505506,2025-06-27T14:03:59,757461401+02:00 -1751025841.4505606,2025-06-27T14:03:59,860991490+02:00 -1751025841.4505706,2025-06-27T14:03:59,963824123+02:00 -1751025841.4505801,2025-06-27T14:04:00,066115435+02:00 -1751025841.4505925,2025-06-27T14:04:00,169797397+02:00 -1751025841.4506037,2025-06-27T14:04:00,273358132+02:00 -1751025841.450614,2025-06-27T14:04:00,375953114+02:00 -1751025841.4506245,2025-06-27T14:04:00,478111166+02:00 -1751025841.4506352,2025-06-27T14:04:00,580631585+02:00 -1751025841.450645,2025-06-27T14:04:00,684393486+02:00 -1751025841.4506552,2025-06-27T14:04:00,787828306+02:00 -1751025841.4506648,2025-06-27T14:04:00,891340761+02:00 -1751025841.4506748,2025-06-27T14:04:00,994669748+02:00 -1751025841.4506853,2025-06-27T14:04:01,098032363+02:00 -1751025841.4506946,2025-06-27T14:04:01,202185716+02:00 -1751025841.4507048,2025-06-27T14:04:01,305841799+02:00 -1751025841.4507143,2025-06-27T14:04:01,409708679+02:00 -1751025841.6155467,2025-06-27T14:04:01,512277835+02:00 -1751025841.7182586,2025-06-27T14:04:01,615106691+02:00 -1751025841.8209147,2025-06-27T14:04:01,717871635+02:00 -1751025841.9238021,2025-06-27T14:04:01,820620802+02:00 -1751025841.9238417,2025-06-27T14:04:01,923365293+02:00 -1751025842.1298134,2025-06-27T14:04:02,025889307+02:00 -1751025842.2328346,2025-06-27T14:04:02,129241997+02:00 -1751025842.3367553,2025-06-27T14:04:02,232432008+02:00 -1751025842.4405558,2025-06-27T14:04:02,336346806+02:00 -1751025842.4406257,2025-06-27T14:04:02,440114558+02:00 -1751025842.6482458,2025-06-27T14:04:02,544045469+02:00 -1751025842.7521603,2025-06-27T14:04:02,647809619+02:00 -1751025842.855846,2025-06-27T14:04:02,751723208+02:00 -1751025842.9590425,2025-06-27T14:04:02,855375249+02:00 -1751025842.9590797,2025-06-27T14:04:02,958729254+02:00 -1751025843.1667721,2025-06-27T14:04:03,062269380+02:00 -1751025843.2705991,2025-06-27T14:04:03,166345456+02:00 -1751025843.3734477,2025-06-27T14:04:03,270212008+02:00 -1751025843.474556,2025-06-27T14:04:03,373016217+02:00 diff --git a/tests/command_execution/.commandlogging/17510258415706702362975748128/void_input-1-err b/tests/command_execution/.commandlogging/17510258415706702362975748128/void_input-1-err deleted file mode 100644 index b38d7499..00000000 --- a/tests/command_execution/.commandlogging/17510258415706702362975748128/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025841.452847,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510258415706702362975748128/void_input-1-out b/tests/command_execution/.commandlogging/17510258415706702362975748128/void_input-1-out deleted file mode 100644 index 64d86c3b..00000000 --- a/tests/command_execution/.commandlogging/17510258415706702362975748128/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751025841.4524884,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510262308517412947345727383/after_comand-0-err b/tests/command_execution/.commandlogging/17510262308517412947345727383/after_comand-0-err deleted file mode 100644 index 7dc0102e..00000000 --- a/tests/command_execution/.commandlogging/17510262308517412947345727383/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026230.2728353,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0665335655212402 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262308517412947345727383/after_comand-0-out b/tests/command_execution/.commandlogging/17510262308517412947345727383/after_comand-0-out deleted file mode 100644 index 127764a1..00000000 --- a/tests/command_execution/.commandlogging/17510262308517412947345727383/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751026230.2727761,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751026230.3751075,2025-06-27T14:10:30,272206616+02:00 -1751026230.478258,2025-06-27T14:10:30,374911003+02:00 -1751026230.581943,2025-06-27T14:10:30,478105536+02:00 -1751026230.6857522,2025-06-27T14:10:30,581764935+02:00 -1751026230.6857998,2025-06-27T14:10:30,685593778+02:00 -1751026230.8926735,2025-06-27T14:10:30,789805855+02:00 -1751026230.995479,2025-06-27T14:10:30,892501877+02:00 -1751026231.099107,2025-06-27T14:10:30,995313311+02:00 -1751026231.2019875,2025-06-27T14:10:31,098929476+02:00 -1751026231.202036,2025-06-27T14:10:31,201838492+02:00 -1751026231.4080274,2025-06-27T14:10:31,304569644+02:00 -1751026231.5119398,2025-06-27T14:10:31,407828749+02:00 -1751026231.6160142,2025-06-27T14:10:31,511766723+02:00 -1751026231.7193801,2025-06-27T14:10:31,615822599+02:00 -1751026231.719431,2025-06-27T14:10:31,719200715+02:00 -1751026231.9262526,2025-06-27T14:10:31,822619286+02:00 -1751026232.0302503,2025-06-27T14:10:31,926025780+02:00 -1751026232.1338286,2025-06-27T14:10:32,030038480+02:00 -1751026232.237811,2025-06-27T14:10:32,133595273+02:00 -1751026232.2378638,2025-06-27T14:10:32,237640607+02:00 -hookend -2.0666401386260986 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262308517412947345727383/after_initial_input b/tests/command_execution/.commandlogging/17510262308517412947345727383/after_initial_input deleted file mode 100644 index e5631c52..00000000 --- a/tests/command_execution/.commandlogging/17510262308517412947345727383/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026230.2724032,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0003001689910888672 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262308517412947345727383/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510262308517412947345727383/hook_function_line-0-err deleted file mode 100644 index fb079659..00000000 --- a/tests/command_execution/.commandlogging/17510262308517412947345727383/hook_function_line-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026230.2741935,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err -hookend -2.066547155380249 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262308517412947345727383/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510262308517412947345727383/hook_function_line-0-out deleted file mode 100644 index e458d9e0..00000000 --- a/tests/command_execution/.commandlogging/17510262308517412947345727383/hook_function_line-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751026230.273834,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751026230.3753934,2025-06-27T14:10:30,272206616+02:00 -1751026230.478484,2025-06-27T14:10:30,374911003+02:00 -1751026230.582226,2025-06-27T14:10:30,478105536+02:00 -1751026230.6860278,2025-06-27T14:10:30,581764935+02:00 -1751026230.6860604,2025-06-27T14:10:30,685593778+02:00 -1751026230.8930013,2025-06-27T14:10:30,789805855+02:00 -1751026230.995726,2025-06-27T14:10:30,892501877+02:00 -1751026231.0993862,2025-06-27T14:10:30,995313311+02:00 -1751026231.2025938,2025-06-27T14:10:31,098929476+02:00 -1751026231.2026384,2025-06-27T14:10:31,201838492+02:00 -1751026231.408422,2025-06-27T14:10:31,304569644+02:00 -1751026231.512244,2025-06-27T14:10:31,407828749+02:00 -1751026231.6162817,2025-06-27T14:10:31,511766723+02:00 -1751026231.7196095,2025-06-27T14:10:31,615822599+02:00 -1751026231.7196429,2025-06-27T14:10:31,719200715+02:00 -1751026231.9265945,2025-06-27T14:10:31,822619286+02:00 -1751026232.030471,2025-06-27T14:10:31,926025780+02:00 -1751026232.1340892,2025-06-27T14:10:32,030038480+02:00 -1751026232.2380168,2025-06-27T14:10:32,133595273+02:00 -1751026232.2381382,2025-06-27T14:10:32,237640607+02:00 -hookend -2.0668773651123047 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262308517412947345727383/void_input-1-err b/tests/command_execution/.commandlogging/17510262308517412947345727383/void_input-1-err deleted file mode 100644 index eac51f1f..00000000 --- a/tests/command_execution/.commandlogging/17510262308517412947345727383/void_input-1-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026230.2753475,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err -hookend -2.066596508026123 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262308517412947345727383/void_input-1-out b/tests/command_execution/.commandlogging/17510262308517412947345727383/void_input-1-out deleted file mode 100644 index 65b6960b..00000000 --- a/tests/command_execution/.commandlogging/17510262308517412947345727383/void_input-1-out +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026230.2749617,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out -hookend -2.0670061111450195 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262584556859485228340177/after_comand-0-err b/tests/command_execution/.commandlogging/17510262584556859485228340177/after_comand-0-err deleted file mode 100644 index fbdedf22..00000000 --- a/tests/command_execution/.commandlogging/17510262584556859485228340177/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026258.9879906,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.061581611633301 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262584556859485228340177/after_comand-0-out b/tests/command_execution/.commandlogging/17510262584556859485228340177/after_comand-0-out deleted file mode 100644 index 3261f598..00000000 --- a/tests/command_execution/.commandlogging/17510262584556859485228340177/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751026258.9881458,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751026259.0914407,2025-06-27T14:10:58,988143613+02:00 -1751026259.194614,2025-06-27T14:10:59,091188028+02:00 -1751026259.2986937,2025-06-27T14:10:59,194439917+02:00 -1751026259.4027033,2025-06-27T14:10:59,298502449+02:00 -1751026259.4027684,2025-06-27T14:10:59,402495916+02:00 -1751026259.607782,2025-06-27T14:10:59,505381737+02:00 -1751026259.7100987,2025-06-27T14:10:59,607692274+02:00 -1751026259.8136327,2025-06-27T14:10:59,710023434+02:00 -1751026259.9173212,2025-06-27T14:10:59,813409606+02:00 -1751026259.917376,2025-06-27T14:10:59,917094618+02:00 -1751026260.122609,2025-06-27T14:11:00,019406447+02:00 -1751026260.2250557,2025-06-27T14:11:00,122391246+02:00 -1751026260.327135,2025-06-27T14:11:00,224972144+02:00 -1751026260.431017,2025-06-27T14:11:00,326990714+02:00 -1751026260.4310849,2025-06-27T14:11:00,430804181+02:00 -1751026260.6376443,2025-06-27T14:11:00,533720919+02:00 -1751026260.7412584,2025-06-27T14:11:00,637449363+02:00 -1751026260.8444908,2025-06-27T14:11:00,741066094+02:00 -1751026260.9479384,2025-06-27T14:11:00,844317060+02:00 -1751026260.9479933,2025-06-27T14:11:00,947774038+02:00 -hookend -2.061372756958008 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262584556859485228340177/after_initial_input b/tests/command_execution/.commandlogging/17510262584556859485228340177/after_initial_input deleted file mode 100644 index bbcd08c6..00000000 --- a/tests/command_execution/.commandlogging/17510262584556859485228340177/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026258.9875085,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0002760887145996094 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510262584556859485228340177/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510262584556859485228340177/hook_function_line-0-err deleted file mode 100644 index 52c957cc..00000000 --- a/tests/command_execution/.commandlogging/17510262584556859485228340177/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026258.9894662,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510262584556859485228340177/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510262584556859485228340177/hook_function_line-0-out deleted file mode 100644 index deb2c0f1..00000000 --- a/tests/command_execution/.commandlogging/17510262584556859485228340177/hook_function_line-0-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026258.9893608,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out diff --git a/tests/command_execution/.commandlogging/17510262584556859485228340177/void_input-1-err b/tests/command_execution/.commandlogging/17510262584556859485228340177/void_input-1-err deleted file mode 100644 index bb8aec8f..00000000 --- a/tests/command_execution/.commandlogging/17510262584556859485228340177/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026258.9909468,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510262584556859485228340177/void_input-1-out b/tests/command_execution/.commandlogging/17510262584556859485228340177/void_input-1-out deleted file mode 100644 index 32d8dd85..00000000 --- a/tests/command_execution/.commandlogging/17510262584556859485228340177/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026258.9901593,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510265094798630923828201528/after_comand-0-err b/tests/command_execution/.commandlogging/17510265094798630923828201528/after_comand-0-err deleted file mode 100644 index 9a4a3c07..00000000 --- a/tests/command_execution/.commandlogging/17510265094798630923828201528/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026509.7212293,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -0.00024580955505371094 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510265094798630923828201528/after_initial_input b/tests/command_execution/.commandlogging/17510265094798630923828201528/after_initial_input deleted file mode 100644 index 0c50461d..00000000 --- a/tests/command_execution/.commandlogging/17510265094798630923828201528/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026509.7209318,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0003578662872314453 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510265114127274637998895824/after_initial_input b/tests/command_execution/.commandlogging/17510265114127274637998895824/after_initial_input deleted file mode 100644 index 307531a5..00000000 --- a/tests/command_execution/.commandlogging/17510265114127274637998895824/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026511.0907288,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00038313865661621094 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751026518371415368267621105/after_comand-0-out b/tests/command_execution/.commandlogging/1751026518371415368267621105/after_comand-0-out deleted file mode 100644 index 6f0aac3e..00000000 --- a/tests/command_execution/.commandlogging/1751026518371415368267621105/after_comand-0-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026518.3292692,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out diff --git a/tests/command_execution/.commandlogging/1751026518371415368267621105/after_initial_input b/tests/command_execution/.commandlogging/1751026518371415368267621105/after_initial_input deleted file mode 100644 index f8b0af4b..00000000 --- a/tests/command_execution/.commandlogging/1751026518371415368267621105/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026518.3286898,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00033855438232421875 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751026559268498061844594090/after_comand-0-err b/tests/command_execution/.commandlogging/1751026559268498061844594090/after_comand-0-err deleted file mode 100644 index 0b447dba..00000000 --- a/tests/command_execution/.commandlogging/1751026559268498061844594090/after_comand-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026559.7063663,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err diff --git a/tests/command_execution/.commandlogging/1751026559268498061844594090/after_comand-0-out b/tests/command_execution/.commandlogging/1751026559268498061844594090/after_comand-0-out deleted file mode 100644 index 9425dd74..00000000 --- a/tests/command_execution/.commandlogging/1751026559268498061844594090/after_comand-0-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026559.7057812,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out diff --git a/tests/command_execution/.commandlogging/1751026559268498061844594090/after_initial_input b/tests/command_execution/.commandlogging/1751026559268498061844594090/after_initial_input deleted file mode 100644 index d65b2504..00000000 --- a/tests/command_execution/.commandlogging/1751026559268498061844594090/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026559.70461,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00038814544677734375 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510265928765007803655267033/after_comand-0-err b/tests/command_execution/.commandlogging/17510265928765007803655267033/after_comand-0-err deleted file mode 100644 index 65a1c86e..00000000 --- a/tests/command_execution/.commandlogging/17510265928765007803655267033/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026592.6806405,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0641462802886963 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510265928765007803655267033/after_comand-0-out b/tests/command_execution/.commandlogging/17510265928765007803655267033/after_comand-0-out deleted file mode 100644 index 55f38682..00000000 --- a/tests/command_execution/.commandlogging/17510265928765007803655267033/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751026592.6809862,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751026592.7839358,2025-06-27T14:16:32,680529214+02:00 -1751026592.8870528,2025-06-27T14:16:32,783720109+02:00 -1751026592.990534,2025-06-27T14:16:32,886941716+02:00 -1751026593.0936594,2025-06-27T14:16:32,990351131+02:00 -1751026593.0937178,2025-06-27T14:16:33,093486297+02:00 -1751026593.2998767,2025-06-27T14:16:33,196640076+02:00 -1751026593.4032564,2025-06-27T14:16:33,299702267+02:00 -1751026593.506707,2025-06-27T14:16:33,403077178+02:00 -1751026593.6104572,2025-06-27T14:16:33,506527063+02:00 -1751026593.6105146,2025-06-27T14:16:33,610267974+02:00 -1751026593.8156621,2025-06-27T14:16:33,712605619+02:00 -1751026593.9190843,2025-06-27T14:16:33,815477262+02:00 -1751026594.0224307,2025-06-27T14:16:33,918881236+02:00 -1751026594.1259453,2025-06-27T14:16:34,022218901+02:00 -1751026594.126015,2025-06-27T14:16:34,125729006+02:00 -1751026594.3327193,2025-06-27T14:16:34,229546104+02:00 -1751026594.4362435,2025-06-27T14:16:34,332547850+02:00 -1751026594.539921,2025-06-27T14:16:34,436064538+02:00 -1751026594.6432395,2025-06-27T14:16:34,539720314+02:00 -1751026594.6432915,2025-06-27T14:16:34,643067080+02:00 -hookend -2.0638034343719482 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510265928765007803655267033/after_initial_input b/tests/command_execution/.commandlogging/17510265928765007803655267033/after_initial_input deleted file mode 100644 index b003ff53..00000000 --- a/tests/command_execution/.commandlogging/17510265928765007803655267033/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026592.6802669,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0003974437713623047 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510265928765007803655267033/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510265928765007803655267033/hook_function_line-0-err deleted file mode 100644 index 830a3267..00000000 --- a/tests/command_execution/.commandlogging/17510265928765007803655267033/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026592.6824698,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510265928765007803655267033/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510265928765007803655267033/hook_function_line-0-out deleted file mode 100644 index a123f49c..00000000 --- a/tests/command_execution/.commandlogging/17510265928765007803655267033/hook_function_line-0-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026592.6822672,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out diff --git a/tests/command_execution/.commandlogging/17510265928765007803655267033/void_input-1-err b/tests/command_execution/.commandlogging/17510265928765007803655267033/void_input-1-err deleted file mode 100644 index 9aa0d2a0..00000000 --- a/tests/command_execution/.commandlogging/17510265928765007803655267033/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026592.684079,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510265928765007803655267033/void_input-1-out b/tests/command_execution/.commandlogging/17510265928765007803655267033/void_input-1-out deleted file mode 100644 index c87dfd33..00000000 --- a/tests/command_execution/.commandlogging/17510265928765007803655267033/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026592.6833804,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/1751026607815276382744962604/after_comand-0-err b/tests/command_execution/.commandlogging/1751026607815276382744962604/after_comand-0-err deleted file mode 100644 index a2f7fba3..00000000 --- a/tests/command_execution/.commandlogging/1751026607815276382744962604/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026607.0690691,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.05488657951355 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751026607815276382744962604/after_comand-0-out b/tests/command_execution/.commandlogging/1751026607815276382744962604/after_comand-0-out deleted file mode 100644 index d451e8fc..00000000 --- a/tests/command_execution/.commandlogging/1751026607815276382744962604/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751026607.0694141,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751026607.1724882,2025-06-27T14:16:47,069048036+02:00 -1751026607.2755337,2025-06-27T14:16:47,172287922+02:00 -1751026607.3788028,2025-06-27T14:16:47,275363469+02:00 -1751026607.4817626,2025-06-27T14:16:47,378624977+02:00 -1751026607.4818113,2025-06-27T14:16:47,481596390+02:00 -1751026607.6868484,2025-06-27T14:16:47,584490472+02:00 -1751026607.789346,2025-06-27T14:16:47,686692352+02:00 -1751026607.8921108,2025-06-27T14:16:47,789175501+02:00 -1751026607.9952111,2025-06-27T14:16:47,891949927+02:00 -1751026607.995274,2025-06-27T14:16:47,994996080+02:00 -1751026608.199566,2025-06-27T14:16:48,096922748+02:00 -1751026608.3023953,2025-06-27T14:16:48,199380055+02:00 -1751026608.4059129,2025-06-27T14:16:48,302215488+02:00 -1751026608.5093114,2025-06-27T14:16:48,405699137+02:00 -1751026608.5093603,2025-06-27T14:16:48,509144047+02:00 -1751026608.7142584,2025-06-27T14:16:48,611598448+02:00 -1751026608.8175492,2025-06-27T14:16:48,714106877+02:00 -1751026608.919865,2025-06-27T14:16:48,817382341+02:00 -1751026609.0223927,2025-06-27T14:16:48,919731812+02:00 -1751026609.0224407,2025-06-27T14:16:49,022180868+02:00 -hookend -2.0545835494995117 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751026607815276382744962604/after_initial_input b/tests/command_execution/.commandlogging/1751026607815276382744962604/after_initial_input deleted file mode 100644 index 6f7e75d7..00000000 --- a/tests/command_execution/.commandlogging/1751026607815276382744962604/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026607.068769,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00038361549377441406 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751026607815276382744962604/hook_function_line-0-err b/tests/command_execution/.commandlogging/1751026607815276382744962604/hook_function_line-0-err deleted file mode 100644 index 8b68a077..00000000 --- a/tests/command_execution/.commandlogging/1751026607815276382744962604/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026607.07143,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/1751026607815276382744962604/hook_function_line-0-out b/tests/command_execution/.commandlogging/1751026607815276382744962604/hook_function_line-0-out deleted file mode 100644 index 03fff582..00000000 --- a/tests/command_execution/.commandlogging/1751026607815276382744962604/hook_function_line-0-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026607.0708988,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out diff --git a/tests/command_execution/.commandlogging/1751026607815276382744962604/void_input-1-err b/tests/command_execution/.commandlogging/1751026607815276382744962604/void_input-1-err deleted file mode 100644 index f3427fd8..00000000 --- a/tests/command_execution/.commandlogging/1751026607815276382744962604/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026607.0738516,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/1751026607815276382744962604/void_input-1-out b/tests/command_execution/.commandlogging/1751026607815276382744962604/void_input-1-out deleted file mode 100644 index 14054dbd..00000000 --- a/tests/command_execution/.commandlogging/1751026607815276382744962604/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026607.073409,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510266517757071367764566299/after_comand-0-err b/tests/command_execution/.commandlogging/17510266517757071367764566299/after_comand-0-err deleted file mode 100644 index 1f419d63..00000000 --- a/tests/command_execution/.commandlogging/17510266517757071367764566299/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026651.4191258,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0642478466033936 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510266517757071367764566299/after_comand-0-out b/tests/command_execution/.commandlogging/17510266517757071367764566299/after_comand-0-out deleted file mode 100644 index ee704bb6..00000000 --- a/tests/command_execution/.commandlogging/17510266517757071367764566299/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751026651.4186988,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751026651.5211303,2025-06-27T14:17:31,418216173+02:00 -1751026651.6250062,2025-06-27T14:17:31,521010438+02:00 -1751026651.7283168,2025-06-27T14:17:31,624816780+02:00 -1751026651.8320718,2025-06-27T14:17:31,728113074+02:00 -1751026651.8321247,2025-06-27T14:17:31,831901130+02:00 -1751026652.038494,2025-06-27T14:17:31,935572745+02:00 -1751026652.1418188,2025-06-27T14:17:32,038308640+02:00 -1751026652.2449887,2025-06-27T14:17:32,141654157+02:00 -1751026652.348765,2025-06-27T14:17:32,244821274+02:00 -1751026652.3488154,2025-06-27T14:17:32,348583528+02:00 -1751026652.5538218,2025-06-27T14:17:32,450725237+02:00 -1751026652.6576793,2025-06-27T14:17:32,553635678+02:00 -1751026652.7607288,2025-06-27T14:17:32,657513788+02:00 -1751026652.864585,2025-06-27T14:17:32,760581865+02:00 -1751026652.8646398,2025-06-27T14:17:32,864383301+02:00 -1751026653.0719461,2025-06-27T14:17:32,968398426+02:00 -1751026653.1752827,2025-06-27T14:17:33,071799008+02:00 -1751026653.2788777,2025-06-27T14:17:33,175002909+02:00 -1751026653.3819928,2025-06-27T14:17:33,278691267+02:00 -1751026653.3820417,2025-06-27T14:17:33,381839586+02:00 -hookend -2.064628839492798 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510266517757071367764566299/after_initial_input b/tests/command_execution/.commandlogging/17510266517757071367764566299/after_initial_input deleted file mode 100644 index 76bc3b2f..00000000 --- a/tests/command_execution/.commandlogging/17510266517757071367764566299/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026651.417465,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00029468536376953125 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510266517757071367764566299/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510266517757071367764566299/hook_function_line-0-err deleted file mode 100644 index def8974e..00000000 --- a/tests/command_execution/.commandlogging/17510266517757071367764566299/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026651.419953,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510266517757071367764566299/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510266517757071367764566299/hook_function_line-0-out deleted file mode 100644 index 1da1be52..00000000 --- a/tests/command_execution/.commandlogging/17510266517757071367764566299/hook_function_line-0-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026651.41978,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out diff --git a/tests/command_execution/.commandlogging/17510266517757071367764566299/void_input-1-err b/tests/command_execution/.commandlogging/17510266517757071367764566299/void_input-1-err deleted file mode 100644 index c0a54e20..00000000 --- a/tests/command_execution/.commandlogging/17510266517757071367764566299/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026651.4223967,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510266517757071367764566299/void_input-1-out b/tests/command_execution/.commandlogging/17510266517757071367764566299/void_input-1-out deleted file mode 100644 index c81def24..00000000 --- a/tests/command_execution/.commandlogging/17510266517757071367764566299/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026651.4217474,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510266883393410295416928852/after_comand-0-out b/tests/command_execution/.commandlogging/17510266883393410295416928852/after_comand-0-out deleted file mode 100644 index 3c093442..00000000 --- a/tests/command_execution/.commandlogging/17510266883393410295416928852/after_comand-0-out +++ /dev/null @@ -1,5 +0,0 @@ -hookstart,command,location -1751026688.4996274,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751026688.4996877,2025-06-27T14:18:08,499490993+02:00 -hookend -0.00028586387634277344 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510266883393410295416928852/after_initial_input b/tests/command_execution/.commandlogging/17510266883393410295416928852/after_initial_input deleted file mode 100644 index 15b330cc..00000000 --- a/tests/command_execution/.commandlogging/17510266883393410295416928852/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026688.499564,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0003838539123535156 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510266955637139366934248799/after_comand-0-err b/tests/command_execution/.commandlogging/17510266955637139366934248799/after_comand-0-err deleted file mode 100644 index 2a09b5f7..00000000 --- a/tests/command_execution/.commandlogging/17510266955637139366934248799/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026695.668374,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0637378692626953 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510266955637139366934248799/after_comand-0-out b/tests/command_execution/.commandlogging/17510266955637139366934248799/after_comand-0-out deleted file mode 100644 index 05062d8c..00000000 --- a/tests/command_execution/.commandlogging/17510266955637139366934248799/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751026695.668303,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751026695.7718816,2025-06-27T14:18:15,668048167+02:00 -1751026695.875152,2025-06-27T14:18:15,771631154+02:00 -1751026695.97775,2025-06-27T14:18:15,874979922+02:00 -1751026696.0814168,2025-06-27T14:18:15,977596118+02:00 -1751026696.0814817,2025-06-27T14:18:16,081195984+02:00 -1751026696.288561,2025-06-27T14:18:16,185259003+02:00 -1751026696.3917172,2025-06-27T14:18:16,288370191+02:00 -1751026696.4948266,2025-06-27T14:18:16,391546864+02:00 -1751026696.5988772,2025-06-27T14:18:16,494643688+02:00 -1751026696.5989227,2025-06-27T14:18:16,598702114+02:00 -1751026696.8037715,2025-06-27T14:18:16,700788482+02:00 -1751026696.9069934,2025-06-27T14:18:16,803604222+02:00 -1751026697.010031,2025-06-27T14:18:16,906819406+02:00 -1751026697.113483,2025-06-27T14:18:17,009873450+02:00 -1751026697.1135292,2025-06-27T14:18:17,113296751+02:00 -1751026697.320057,2025-06-27T14:18:17,216804121+02:00 -1751026697.4232287,2025-06-27T14:18:17,319885316+02:00 -1751026697.5268004,2025-06-27T14:18:17,423031274+02:00 -1751026697.6305957,2025-06-27T14:18:17,526590615+02:00 -1751026697.6306455,2025-06-27T14:18:17,630183694+02:00 -hookend -2.0637710094451904 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510266955637139366934248799/after_initial_input b/tests/command_execution/.commandlogging/17510266955637139366934248799/after_initial_input deleted file mode 100644 index 62c25d22..00000000 --- a/tests/command_execution/.commandlogging/17510266955637139366934248799/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026695.6681755,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0003533363342285156 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510266955637139366934248799/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510266955637139366934248799/hook_function_line-0-err deleted file mode 100644 index 04477837..00000000 --- a/tests/command_execution/.commandlogging/17510266955637139366934248799/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026695.6701922,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510266955637139366934248799/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510266955637139366934248799/hook_function_line-0-out deleted file mode 100644 index ac32271a..00000000 --- a/tests/command_execution/.commandlogging/17510266955637139366934248799/hook_function_line-0-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026695.6697938,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out diff --git a/tests/command_execution/.commandlogging/17510266955637139366934248799/void_input-1-err b/tests/command_execution/.commandlogging/17510266955637139366934248799/void_input-1-err deleted file mode 100644 index 73830963..00000000 --- a/tests/command_execution/.commandlogging/17510266955637139366934248799/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026695.671787,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510266955637139366934248799/void_input-1-out b/tests/command_execution/.commandlogging/17510266955637139366934248799/void_input-1-out deleted file mode 100644 index b1492397..00000000 --- a/tests/command_execution/.commandlogging/17510266955637139366934248799/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026695.6711195,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510267507745254711084627794/after_comand-0-out b/tests/command_execution/.commandlogging/17510267507745254711084627794/after_comand-0-out deleted file mode 100644 index 6c7fc65f..00000000 --- a/tests/command_execution/.commandlogging/17510267507745254711084627794/after_comand-0-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026750.6013825,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out diff --git a/tests/command_execution/.commandlogging/17510267507745254711084627794/after_initial_input b/tests/command_execution/.commandlogging/17510267507745254711084627794/after_initial_input deleted file mode 100644 index 96bcebdc..00000000 --- a/tests/command_execution/.commandlogging/17510267507745254711084627794/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026750.6007426,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0003650188446044922 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510267636351896796693948683/after_comand-0-err b/tests/command_execution/.commandlogging/17510267636351896796693948683/after_comand-0-err deleted file mode 100644 index cbd227ca..00000000 --- a/tests/command_execution/.commandlogging/17510267636351896796693948683/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026763.673795,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0628888607025146 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510267636351896796693948683/after_comand-0-out b/tests/command_execution/.commandlogging/17510267636351896796693948683/after_comand-0-out deleted file mode 100644 index fa7bc82e..00000000 --- a/tests/command_execution/.commandlogging/17510267636351896796693948683/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751026763.674215,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751026763.776317,2025-06-27T14:19:23,673343403+02:00 -1751026763.8798256,2025-06-27T14:19:23,776095351+02:00 -1751026763.9838147,2025-06-27T14:19:23,879656018+02:00 -1751026764.0870447,2025-06-27T14:19:23,983626106+02:00 -1751026764.087099,2025-06-27T14:19:24,086862311+02:00 -1751026764.292814,2025-06-27T14:19:24,190524943+02:00 -1751026764.3954859,2025-06-27T14:19:24,292657252+02:00 -1751026764.4989293,2025-06-27T14:19:24,395390133+02:00 -1751026764.6025093,2025-06-27T14:19:24,498749692+02:00 -1751026764.6025598,2025-06-27T14:19:24,602283011+02:00 -1751026764.8077233,2025-06-27T14:19:24,704943610+02:00 -1751026764.9117305,2025-06-27T14:19:24,807544865+02:00 -1751026765.0152652,2025-06-27T14:19:24,911533056+02:00 -1751026765.1188836,2025-06-27T14:19:25,015080109+02:00 -1751026765.1189322,2025-06-27T14:19:25,118672067+02:00 -1751026765.3247104,2025-06-27T14:19:25,221685699+02:00 -1751026765.4282873,2025-06-27T14:19:25,324546397+02:00 -1751026765.5319662,2025-06-27T14:19:25,428086281+02:00 -1751026765.635191,2025-06-27T14:19:25,531795987+02:00 -1751026765.6352494,2025-06-27T14:19:25,635010271+02:00 -hookend -2.0627310276031494 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510267636351896796693948683/after_initial_input b/tests/command_execution/.commandlogging/17510267636351896796693948683/after_initial_input deleted file mode 100644 index 7c8c3c1c..00000000 --- a/tests/command_execution/.commandlogging/17510267636351896796693948683/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026763.6732488,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0003185272216796875 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510267636351896796693948683/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510267636351896796693948683/hook_function_line-0-err deleted file mode 100644 index cedf4fb0..00000000 --- a/tests/command_execution/.commandlogging/17510267636351896796693948683/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026763.6751006,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510267636351896796693948683/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510267636351896796693948683/hook_function_line-0-out deleted file mode 100644 index 2a001e26..00000000 --- a/tests/command_execution/.commandlogging/17510267636351896796693948683/hook_function_line-0-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026763.6750348,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out diff --git a/tests/command_execution/.commandlogging/17510267636351896796693948683/void_input-1-err b/tests/command_execution/.commandlogging/17510267636351896796693948683/void_input-1-err deleted file mode 100644 index 5e03467a..00000000 --- a/tests/command_execution/.commandlogging/17510267636351896796693948683/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026763.6768014,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510267636351896796693948683/void_input-1-out b/tests/command_execution/.commandlogging/17510267636351896796693948683/void_input-1-out deleted file mode 100644 index bf490c06..00000000 --- a/tests/command_execution/.commandlogging/17510267636351896796693948683/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026763.6762762,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/1751026779829708360205953396/after_comand-0-err b/tests/command_execution/.commandlogging/1751026779829708360205953396/after_comand-0-err deleted file mode 100644 index 7067e504..00000000 --- a/tests/command_execution/.commandlogging/1751026779829708360205953396/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026779.0963843,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0563852787017822 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751026779829708360205953396/after_comand-0-out b/tests/command_execution/.commandlogging/1751026779829708360205953396/after_comand-0-out deleted file mode 100644 index 216b5a0d..00000000 --- a/tests/command_execution/.commandlogging/1751026779829708360205953396/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751026779.0968504,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751026779.1994562,2025-06-27T14:19:39,096509526+02:00 -1751026779.3025992,2025-06-27T14:19:39,199287297+02:00 -1751026779.405609,2025-06-27T14:19:39,302439175+02:00 -1751026779.5091515,2025-06-27T14:19:39,405387910+02:00 -1751026779.509212,2025-06-27T14:19:39,508992370+02:00 -1751026779.714302,2025-06-27T14:19:39,611892643+02:00 -1751026779.8164065,2025-06-27T14:19:39,714129566+02:00 -1751026779.91923,2025-06-27T14:19:39,816328294+02:00 -1751026780.02203,2025-06-27T14:19:39,919055800+02:00 -1751026780.0220773,2025-06-27T14:19:40,021867765+02:00 -1751026780.2264137,2025-06-27T14:19:40,123961123+02:00 -1751026780.3297822,2025-06-27T14:19:40,226227578+02:00 -1751026780.4332862,2025-06-27T14:19:40,329588063+02:00 -1751026780.5362582,2025-06-27T14:19:40,433108507+02:00 -1751026780.5364819,2025-06-27T14:19:40,536082400+02:00 -1751026780.7435198,2025-06-27T14:19:40,639633789+02:00 -1751026780.8463368,2025-06-27T14:19:40,743317445+02:00 -1751026780.9489062,2025-06-27T14:19:40,846185248+02:00 -1751026781.0514433,2025-06-27T14:19:40,948767639+02:00 -1751026781.051486,2025-06-27T14:19:41,051277525+02:00 -hookend -2.0559403896331787 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751026779829708360205953396/after_initial_input b/tests/command_execution/.commandlogging/1751026779829708360205953396/after_initial_input deleted file mode 100644 index c2e2fcfa..00000000 --- a/tests/command_execution/.commandlogging/1751026779829708360205953396/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026779.0957153,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0002777576446533203 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751026779829708360205953396/hook_function_line-0-err b/tests/command_execution/.commandlogging/1751026779829708360205953396/hook_function_line-0-err deleted file mode 100644 index a034d975..00000000 --- a/tests/command_execution/.commandlogging/1751026779829708360205953396/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026779.0976548,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/1751026779829708360205953396/hook_function_line-0-out b/tests/command_execution/.commandlogging/1751026779829708360205953396/hook_function_line-0-out deleted file mode 100644 index a34d7681..00000000 --- a/tests/command_execution/.commandlogging/1751026779829708360205953396/hook_function_line-0-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026779.0972695,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out diff --git a/tests/command_execution/.commandlogging/1751026779829708360205953396/void_input-1-err b/tests/command_execution/.commandlogging/1751026779829708360205953396/void_input-1-err deleted file mode 100644 index 18c298d5..00000000 --- a/tests/command_execution/.commandlogging/1751026779829708360205953396/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026779.0991516,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/1751026779829708360205953396/void_input-1-out b/tests/command_execution/.commandlogging/1751026779829708360205953396/void_input-1-out deleted file mode 100644 index a94d24b8..00000000 --- a/tests/command_execution/.commandlogging/1751026779829708360205953396/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026779.0990255,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510268714191413081950033424/after_comand-0-err b/tests/command_execution/.commandlogging/17510268714191413081950033424/after_comand-0-err deleted file mode 100644 index 4c5958c1..00000000 --- a/tests/command_execution/.commandlogging/17510268714191413081950033424/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026871.0323958,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.064208507537842 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510268714191413081950033424/after_comand-0-out b/tests/command_execution/.commandlogging/17510268714191413081950033424/after_comand-0-out deleted file mode 100644 index c8e414db..00000000 --- a/tests/command_execution/.commandlogging/17510268714191413081950033424/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751026871.0317252,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751026871.1357622,2025-06-27T14:21:11,031870141+02:00 -1751026871.2385554,2025-06-27T14:21:11,135567117+02:00 -1751026871.341978,2025-06-27T14:21:11,238367839+02:00 -1751026871.4452443,2025-06-27T14:21:11,341800540+02:00 -1751026871.4452946,2025-06-27T14:21:11,445092161+02:00 -1751026871.651909,2025-06-27T14:21:11,548956507+02:00 -1751026871.7558722,2025-06-27T14:21:11,651823509+02:00 -1751026871.8602436,2025-06-27T14:21:11,755678790+02:00 -1751026871.9638085,2025-06-27T14:21:11,860038307+02:00 -1751026871.9638605,2025-06-27T14:21:11,963626673+02:00 -1751026872.1685615,2025-06-27T14:21:12,065688241+02:00 -1751026872.2724328,2025-06-27T14:21:12,168382451+02:00 -1751026872.375569,2025-06-27T14:21:12,272228184+02:00 -1751026872.4789877,2025-06-27T14:21:12,375409412+02:00 -1751026872.4790323,2025-06-27T14:21:12,478822200+02:00 -1751026872.6856282,2025-06-27T14:21:12,581937517+02:00 -1751026872.7886677,2025-06-27T14:21:12,685417774+02:00 -1751026872.8917994,2025-06-27T14:21:12,788502231+02:00 -1751026872.994869,2025-06-27T14:21:12,891644307+02:00 -1751026872.9949222,2025-06-27T14:21:12,994704218+02:00 -hookend -2.0647518634796143 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510268714191413081950033424/after_initial_input b/tests/command_execution/.commandlogging/17510268714191413081950033424/after_initial_input deleted file mode 100644 index 3f301766..00000000 --- a/tests/command_execution/.commandlogging/17510268714191413081950033424/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026871.0314047,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00023794174194335938 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510268714191413081950033424/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510268714191413081950033424/hook_function_line-0-err deleted file mode 100644 index 399313e8..00000000 --- a/tests/command_execution/.commandlogging/17510268714191413081950033424/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026871.0329273,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510268714191413081950033424/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510268714191413081950033424/hook_function_line-0-out deleted file mode 100644 index b8191a18..00000000 --- a/tests/command_execution/.commandlogging/17510268714191413081950033424/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751026871.0326538,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751026871.1360528,2025-06-27T14:21:11,031870141+02:00 -1751026871.2388198,2025-06-27T14:21:11,135567117+02:00 -1751026871.3422408,2025-06-27T14:21:11,238367839+02:00 -1751026871.4455245,2025-06-27T14:21:11,341800540+02:00 -1751026871.4455545,2025-06-27T14:21:11,445092161+02:00 -1751026871.6520875,2025-06-27T14:21:11,548956507+02:00 -1751026871.756447,2025-06-27T14:21:11,651823509+02:00 -1751026871.8605232,2025-06-27T14:21:11,755678790+02:00 -1751026871.9639878,2025-06-27T14:21:11,860038307+02:00 -1751026871.964022,2025-06-27T14:21:11,963626673+02:00 -1751026872.1692526,2025-06-27T14:21:12,065688241+02:00 -1751026872.2729127,2025-06-27T14:21:12,168382451+02:00 -1751026872.3758254,2025-06-27T14:21:12,272228184+02:00 -1751026872.4793065,2025-06-27T14:21:12,375409412+02:00 -1751026872.479352,2025-06-27T14:21:12,478822200+02:00 -1751026872.68594,2025-06-27T14:21:12,581937517+02:00 -1751026872.7889457,2025-06-27T14:21:12,685417774+02:00 -1751026872.8921578,2025-06-27T14:21:12,788502231+02:00 -1751026872.9951468,2025-06-27T14:21:12,891644307+02:00 -1751026872.995347,2025-06-27T14:21:12,994704218+02:00 diff --git a/tests/command_execution/.commandlogging/17510268714191413081950033424/void_input-1-err b/tests/command_execution/.commandlogging/17510268714191413081950033424/void_input-1-err deleted file mode 100644 index b01e66df..00000000 --- a/tests/command_execution/.commandlogging/17510268714191413081950033424/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026871.0344193,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510268714191413081950033424/void_input-1-out b/tests/command_execution/.commandlogging/17510268714191413081950033424/void_input-1-out deleted file mode 100644 index e417998e..00000000 --- a/tests/command_execution/.commandlogging/17510268714191413081950033424/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026871.0343752,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510269497858991073078199574/after_comand-0-err b/tests/command_execution/.commandlogging/17510269497858991073078199574/after_comand-0-err deleted file mode 100644 index 3c23476f..00000000 --- a/tests/command_execution/.commandlogging/17510269497858991073078199574/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026949.027579,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0604867935180664 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510269497858991073078199574/after_comand-0-out b/tests/command_execution/.commandlogging/17510269497858991073078199574/after_comand-0-out deleted file mode 100644 index cc7ec516..00000000 --- a/tests/command_execution/.commandlogging/17510269497858991073078199574/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751026949.0267227,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751026949.1299002,2025-06-27T14:22:29,026825151+02:00 -1751026949.2327542,2025-06-27T14:22:29,129722252+02:00 -1751026949.3358202,2025-06-27T14:22:29,232587301+02:00 -1751026949.4387908,2025-06-27T14:22:29,335662318+02:00 -1751026949.4388378,2025-06-27T14:22:29,438621495+02:00 -1751026949.6442845,2025-06-27T14:22:29,541593016+02:00 -1751026949.7468996,2025-06-27T14:22:29,644143932+02:00 -1751026949.850049,2025-06-27T14:22:29,746753842+02:00 -1751026949.9537158,2025-06-27T14:22:29,849886099+02:00 -1751026949.9537692,2025-06-27T14:22:29,953519694+02:00 -1751026950.1590896,2025-06-27T14:22:30,055711395+02:00 -1751026950.262423,2025-06-27T14:22:30,158913682+02:00 -1751026950.3656576,2025-06-27T14:22:30,262095536+02:00 -1751026950.468785,2025-06-27T14:22:30,365471485+02:00 -1751026950.4688332,2025-06-27T14:22:30,468622420+02:00 -1751026950.6757038,2025-06-27T14:22:30,572106563+02:00 -1751026950.7790773,2025-06-27T14:22:30,675527759+02:00 -1751026950.8828402,2025-06-27T14:22:30,778915990+02:00 -1751026950.9862244,2025-06-27T14:22:30,882664375+02:00 -1751026950.9862745,2025-06-27T14:22:30,986088943+02:00 -hookend -2.0611064434051514 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510269497858991073078199574/after_initial_input b/tests/command_execution/.commandlogging/17510269497858991073078199574/after_initial_input deleted file mode 100644 index 9d0d0b37..00000000 --- a/tests/command_execution/.commandlogging/17510269497858991073078199574/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026949.0263505,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00026226043701171875 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510269497858991073078199574/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510269497858991073078199574/hook_function_line-0-err deleted file mode 100644 index 4db7f3cd..00000000 --- a/tests/command_execution/.commandlogging/17510269497858991073078199574/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026949.0290883,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510269497858991073078199574/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510269497858991073078199574/hook_function_line-0-out deleted file mode 100644 index 522e3090..00000000 --- a/tests/command_execution/.commandlogging/17510269497858991073078199574/hook_function_line-0-out +++ /dev/null @@ -1,12 +0,0 @@ -hookstart,command,location -1751026949.0287106,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751026949.6445916,2025-06-27T14:22:29,026825151+02:0214:22:522025-06-27T14:22:29,2325873214:223025-06-27T14:22:29,43802025-06-27T14:22:29,541593016+02:00 -1751026949.747134,2025-06-27T14:22:29,644143932+02:00 -1751026949.850288,2025-06-27T14:22:29,746753842+02:00 -1751026950.1594117,2025-06-27T14:22:29,849886099+02:027T14:22:29,953519694+02:2025-06-27T14:22:30,055711395+02:00 -1751026950.2626638,2025-06-27T14:22:30,158913682+02:00 -1751026950.3659105,2025-06-27T14:22:30,262095536+02:00 -1751026950.6760566,2025-06-27T14:22:30,3654714025-06-27T14:22:30,46862242025-06-27T14:22:30,572106563+02:00 -1751026950.7793517,2025-06-27T14:22:30,675527759+02:00 -1751026950.9865396,2025-06-27T14:22:30,778915990+02025-06-27T14:22:30,882664375+02:00 -1751026950.986593,2025-06-27T14:22:30,986088943+02:00 diff --git a/tests/command_execution/.commandlogging/17510269497858991073078199574/void_input-1-err b/tests/command_execution/.commandlogging/17510269497858991073078199574/void_input-1-err deleted file mode 100644 index 7bf9d9b5..00000000 --- a/tests/command_execution/.commandlogging/17510269497858991073078199574/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026949.0302224,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510269497858991073078199574/void_input-1-out b/tests/command_execution/.commandlogging/17510269497858991073078199574/void_input-1-out deleted file mode 100644 index b3d9bfcd..00000000 --- a/tests/command_execution/.commandlogging/17510269497858991073078199574/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026949.0301285,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510269733222053283261616000/after_comand-0-err b/tests/command_execution/.commandlogging/17510269733222053283261616000/after_comand-0-err deleted file mode 100644 index 7a0a9db7..00000000 --- a/tests/command_execution/.commandlogging/17510269733222053283261616000/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026973.4351606,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0596261024475098 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510269733222053283261616000/after_comand-0-out b/tests/command_execution/.commandlogging/17510269733222053283261616000/after_comand-0-out deleted file mode 100644 index 086f5b19..00000000 --- a/tests/command_execution/.commandlogging/17510269733222053283261616000/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751026973.4349902,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751026973.5363824,2025-06-27T14:22:53,433664368+02:00 -1751026973.6401517,2025-06-27T14:22:53,536096093+02:00 -1751026973.742979,2025-06-27T14:22:53,639979226+02:00 -1751026973.8460808,2025-06-27T14:22:53,742815790+02:00 -1751026973.8461509,2025-06-27T14:22:53,845924145+02:00 -1751026974.0517359,2025-06-27T14:22:53,949250640+02:00 -1751026974.1548228,2025-06-27T14:22:54,051590258+02:00 -1751026974.2577326,2025-06-27T14:22:54,154654976+02:00 -1751026974.3610392,2025-06-27T14:22:54,257587861+02:00 -1751026974.3610945,2025-06-27T14:22:54,360870774+02:00 -1751026974.565956,2025-06-27T14:22:54,463107506+02:00 -1751026974.6691127,2025-06-27T14:22:54,565792427+02:00 -1751026974.7722335,2025-06-27T14:22:54,668940144+02:00 -1751026974.876019,2025-06-27T14:22:54,772040769+02:00 -1751026974.8760703,2025-06-27T14:22:54,875859648+02:00 -1751026975.0832024,2025-06-27T14:22:54,979727016+02:00 -1751026975.1868246,2025-06-27T14:22:55,083016475+02:00 -1751026975.2897794,2025-06-27T14:22:55,186649983+02:00 -1751026975.392949,2025-06-27T14:22:55,289627336+02:00 -1751026975.3929956,2025-06-27T14:22:55,392771067+02:00 -hookend -2.0597941875457764 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510269733222053283261616000/after_initial_input b/tests/command_execution/.commandlogging/17510269733222053283261616000/after_initial_input deleted file mode 100644 index 47f3ab15..00000000 --- a/tests/command_execution/.commandlogging/17510269733222053283261616000/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751026973.4342835,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0004374980926513672 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510269733222053283261616000/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510269733222053283261616000/hook_function_line-0-err deleted file mode 100644 index 910b4894..00000000 --- a/tests/command_execution/.commandlogging/17510269733222053283261616000/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026973.4372725,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510269733222053283261616000/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510269733222053283261616000/hook_function_line-0-out deleted file mode 100644 index 652e5271..00000000 --- a/tests/command_execution/.commandlogging/17510269733222053283261616000/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751026973.4367912,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751026973.5366933,2025-06-27T14:22:53,433664368+02:00 -1751026973.6403627,2025-06-27T14:22:53,536096093+02:00 -1751026973.7433047,2025-06-27T14:22:53,639979226+02:00 -1751026973.846538,2025-06-27T14:22:53,742815790+02:00 -1751026973.8465822,2025-06-27T14:22:53,845924145+02:00 -1751026974.051906,2025-06-27T14:22:53,949250640+02:00 -1751026974.1551461,2025-06-27T14:22:54,051590258+02:00 -1751026974.2579415,2025-06-27T14:22:54,154654976+02:00 -1751026974.3612678,2025-06-27T14:22:54,257587861+02:00 -1751026974.3613684,2025-06-27T14:22:54,360870774+02:00 -1751026974.5663939,2025-06-27T14:22:54,463107506+02:00 -1751026974.66938,2025-06-27T14:22:54,565792427+02:00 -1751026974.7724414,2025-06-27T14:22:54,668940144+02:00 -1751026974.8764176,2025-06-27T14:22:54,772040769+02:00 -1751026974.8764665,2025-06-27T14:22:54,875859648+02:00 -1751026975.083519,2025-06-27T14:22:54,979727016+02:00 -1751026975.1870997,2025-06-27T14:22:55,083016475+02:00 -1751026975.2899034,2025-06-27T14:22:55,186649983+02:00 -1751026975.393233,2025-06-27T14:22:55,289627336+02:00 -1751026975.3932703,2025-06-27T14:22:55,392771067+02:00 diff --git a/tests/command_execution/.commandlogging/17510269733222053283261616000/void_input-1-err b/tests/command_execution/.commandlogging/17510269733222053283261616000/void_input-1-err deleted file mode 100644 index decb8f79..00000000 --- a/tests/command_execution/.commandlogging/17510269733222053283261616000/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026973.4380329,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510269733222053283261616000/void_input-1-out b/tests/command_execution/.commandlogging/17510269733222053283261616000/void_input-1-out deleted file mode 100644 index a7d33e4a..00000000 --- a/tests/command_execution/.commandlogging/17510269733222053283261616000/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751026973.438075,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510270417459227282026739641/after_comand-0-err b/tests/command_execution/.commandlogging/17510270417459227282026739641/after_comand-0-err deleted file mode 100644 index 4f240364..00000000 --- a/tests/command_execution/.commandlogging/17510270417459227282026739641/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027041.5322587,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0630931854248047 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510270417459227282026739641/after_comand-0-out b/tests/command_execution/.commandlogging/17510270417459227282026739641/after_comand-0-out deleted file mode 100644 index 491b24c5..00000000 --- a/tests/command_execution/.commandlogging/17510270417459227282026739641/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751027041.5317633,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751027041.6326363,2025-06-27T14:24:01,529694084+02:00 -1751027041.7358665,2025-06-27T14:24:01,632380647+02:00 -1751027041.838578,2025-06-27T14:24:01,735715161+02:00 -1751027041.9421084,2025-06-27T14:24:01,838429128+02:00 -1751027041.9421546,2025-06-27T14:24:01,941925536+02:00 -1751027042.1488926,2025-06-27T14:24:02,045716305+02:00 -1751027042.251643,2025-06-27T14:24:02,148692346+02:00 -1751027042.354939,2025-06-27T14:24:02,251497197+02:00 -1751027042.4585419,2025-06-27T14:24:02,354771234+02:00 -1751027042.4585924,2025-06-27T14:24:02,458349483+02:00 -1751027042.6638987,2025-06-27T14:24:02,560819370+02:00 -1751027042.7674053,2025-06-27T14:24:02,663729028+02:00 -1751027042.8709989,2025-06-27T14:24:02,767210120+02:00 -1751027042.974806,2025-06-27T14:24:02,870800425+02:00 -1751027042.9748507,2025-06-27T14:24:02,974627025+02:00 -1751027043.1824415,2025-06-27T14:24:03,078487654+02:00 -1751027043.2863817,2025-06-27T14:24:03,182229495+02:00 -1751027043.3896627,2025-06-27T14:24:03,286197292+02:00 -1751027043.4935606,2025-06-27T14:24:03,389494478+02:00 -1751027043.4936147,2025-06-27T14:24:03,493370686+02:00 -hookend -2.0635528564453125 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510270417459227282026739641/after_initial_input b/tests/command_execution/.commandlogging/17510270417459227282026739641/after_initial_input deleted file mode 100644 index 8938014a..00000000 --- a/tests/command_execution/.commandlogging/17510270417459227282026739641/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027041.5300224,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00023055076599121094 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510270417459227282026739641/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510270417459227282026739641/hook_function_line-0-err deleted file mode 100644 index 5aa57aa9..00000000 --- a/tests/command_execution/.commandlogging/17510270417459227282026739641/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027041.53501,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510270417459227282026739641/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510270417459227282026739641/hook_function_line-0-out deleted file mode 100644 index d579314a..00000000 --- a/tests/command_execution/.commandlogging/17510270417459227282026739641/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751027041.534649,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751027041.6331468,2025-06-27T14:24:01,529694084+02:00 -1751027041.7360759,2025-06-27T14:24:01,632380647+02:00 -1751027041.8388119,2025-06-27T14:24:01,735715161+02:00 -1751027041.9423912,2025-06-27T14:24:01,838429128+02:00 -1751027041.9424226,2025-06-27T14:24:01,941925536+02:00 -1751027042.1491392,2025-06-27T14:24:02,045716305+02:00 -1751027042.2518759,2025-06-27T14:24:02,148692346+02:00 -1751027042.3551183,2025-06-27T14:24:02,251497197+02:00 -1751027042.4588063,2025-06-27T14:24:02,354771234+02:00 -1751027042.4588578,2025-06-27T14:24:02,458349483+02:00 -1751027042.6641605,2025-06-27T14:24:02,560819370+02:00 -1751027042.7676294,2025-06-27T14:24:02,663729028+02:00 -1751027042.871247,2025-06-27T14:24:02,767210120+02:00 -1751027042.9749417,2025-06-27T14:24:02,870800425+02:00 -1751027042.9749713,2025-06-27T14:24:02,974627025+02:00 -1751027043.1827283,2025-06-27T14:24:03,078487654+02:00 -1751027043.2868073,2025-06-27T14:24:03,182229495+02:00 -1751027043.389805,2025-06-27T14:24:03,286197292+02:00 -1751027043.4938462,2025-06-27T14:24:03,389494478+02:00 -1751027043.4938838,2025-06-27T14:24:03,493370686+02:00 diff --git a/tests/command_execution/.commandlogging/17510270417459227282026739641/void_input-1-err b/tests/command_execution/.commandlogging/17510270417459227282026739641/void_input-1-err deleted file mode 100644 index 6cb4580f..00000000 --- a/tests/command_execution/.commandlogging/17510270417459227282026739641/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027041.5357366,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510270417459227282026739641/void_input-1-out b/tests/command_execution/.commandlogging/17510270417459227282026739641/void_input-1-out deleted file mode 100644 index 65719ec4..00000000 --- a/tests/command_execution/.commandlogging/17510270417459227282026739641/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027041.53576,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510270583821103139432107070/after_comand-0-err b/tests/command_execution/.commandlogging/17510270583821103139432107070/after_comand-0-err deleted file mode 100644 index 336e8ed8..00000000 --- a/tests/command_execution/.commandlogging/17510270583821103139432107070/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027058.3195384,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.062514066696167 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510270583821103139432107070/after_comand-0-out b/tests/command_execution/.commandlogging/17510270583821103139432107070/after_comand-0-out deleted file mode 100644 index c49dc3c4..00000000 --- a/tests/command_execution/.commandlogging/17510270583821103139432107070/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751027058.3192837,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751027058.4215016,2025-06-27T14:24:18,318525677+02:00 -1751027058.5247555,2025-06-27T14:24:18,421324160+02:00 -1751027058.6278973,2025-06-27T14:24:18,524570031+02:00 -1751027058.7317343,2025-06-27T14:24:18,627741421+02:00 -1751027058.7317963,2025-06-27T14:24:18,731535779+02:00 -1751027058.938046,2025-06-27T14:24:18,834933948+02:00 -1751027059.0409124,2025-06-27T14:24:18,937792459+02:00 -1751027059.1444104,2025-06-27T14:24:19,040731514+02:00 -1751027059.2473583,2025-06-27T14:24:19,144187349+02:00 -1751027059.2474082,2025-06-27T14:24:19,247161047+02:00 -1751027059.4525821,2025-06-27T14:24:19,349631768+02:00 -1751027059.5559018,2025-06-27T14:24:19,452403428+02:00 -1751027059.659823,2025-06-27T14:24:19,555722770+02:00 -1751027059.763054,2025-06-27T14:24:19,659644572+02:00 -1751027059.7631006,2025-06-27T14:24:19,762878518+02:00 -1751027059.9698749,2025-06-27T14:24:19,866668527+02:00 -1751027060.0738864,2025-06-27T14:24:19,969688328+02:00 -1751027060.177461,2025-06-27T14:24:20,073686683+02:00 -1751027060.2804055,2025-06-27T14:24:20,177268329+02:00 -1751027060.2804656,2025-06-27T14:24:20,280154048+02:00 -hookend -2.062772512435913 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510270583821103139432107070/after_initial_input b/tests/command_execution/.commandlogging/17510270583821103139432107070/after_initial_input deleted file mode 100644 index 3788131b..00000000 --- a/tests/command_execution/.commandlogging/17510270583821103139432107070/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027058.3179488,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0001857280731201172 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510270583821103139432107070/hook_function_line-0-err b/tests/command_execution/.commandlogging/17510270583821103139432107070/hook_function_line-0-err deleted file mode 100644 index 2c97f6f9..00000000 --- a/tests/command_execution/.commandlogging/17510270583821103139432107070/hook_function_line-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027058.3210993,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-err diff --git a/tests/command_execution/.commandlogging/17510270583821103139432107070/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510270583821103139432107070/hook_function_line-0-out deleted file mode 100644 index ff09a4c2..00000000 --- a/tests/command_execution/.commandlogging/17510270583821103139432107070/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751027058.320082,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751027058.421766,2025-06-27T14:24:18,318525677+02:00 -1751027058.525101,2025-06-27T14:24:18,421324160+02:00 -1751027058.6281009,2025-06-27T14:24:18,524570031+02:00 -1751027058.7319841,2025-06-27T14:24:18,627741421+02:00 -1751027058.7320876,2025-06-27T14:24:18,731535779+02:00 -1751027058.938137,2025-06-27T14:24:18,834933948+02:00 -1751027059.041091,2025-06-27T14:24:18,937792459+02:00 -1751027059.144644,2025-06-27T14:24:19,040731514+02:00 -1751027059.2476597,2025-06-27T14:24:19,144187349+02:00 -1751027059.2477272,2025-06-27T14:24:19,247161047+02:00 -1751027059.452803,2025-06-27T14:24:19,349631768+02:00 -1751027059.5562003,2025-06-27T14:24:19,452403428+02:00 -1751027059.660055,2025-06-27T14:24:19,555722770+02:00 -1751027059.7633004,2025-06-27T14:24:19,659644572+02:00 -1751027059.7633321,2025-06-27T14:24:19,762878518+02:00 -1751027059.970148,2025-06-27T14:24:19,866668527+02:00 -1751027060.0741434,2025-06-27T14:24:19,969688328+02:00 -1751027060.1776905,2025-06-27T14:24:20,073686683+02:00 -1751027060.2806554,2025-06-27T14:24:20,177268329+02:00 -1751027060.2806857,2025-06-27T14:24:20,280154048+02:00 diff --git a/tests/command_execution/.commandlogging/17510270583821103139432107070/void_input-1-err b/tests/command_execution/.commandlogging/17510270583821103139432107070/void_input-1-err deleted file mode 100644 index 87fd72cb..00000000 --- a/tests/command_execution/.commandlogging/17510270583821103139432107070/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027058.3212755,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510270583821103139432107070/void_input-1-out b/tests/command_execution/.commandlogging/17510270583821103139432107070/void_input-1-out deleted file mode 100644 index a00e748b..00000000 --- a/tests/command_execution/.commandlogging/17510270583821103139432107070/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027058.3218272,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510275061222936710834884607/after_comand-0-err b/tests/command_execution/.commandlogging/17510275061222936710834884607/after_comand-0-err deleted file mode 100644 index 1c1bd5b2..00000000 --- a/tests/command_execution/.commandlogging/17510275061222936710834884607/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027506.942605,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.064708709716797 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275061222936710834884607/after_comand-0-out b/tests/command_execution/.commandlogging/17510275061222936710834884607/after_comand-0-out deleted file mode 100644 index 02a0b863..00000000 --- a/tests/command_execution/.commandlogging/17510275061222936710834884607/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751027506.9418652,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751027507.0446975,2025-06-27T14:31:46,941582907+02:00 -1751027507.1481874,2025-06-27T14:31:47,044492345+02:00 -1751027507.2517803,2025-06-27T14:31:47,147977061+02:00 -1751027507.356025,2025-06-27T14:31:47,251583042+02:00 -1751027507.3560965,2025-06-27T14:31:47,355803762+02:00 -1751027507.5623498,2025-06-27T14:31:47,459551954+02:00 -1751027507.6647062,2025-06-27T14:31:47,562185850+02:00 -1751027507.768546,2025-06-27T14:31:47,664554933+02:00 -1751027507.871084,2025-06-27T14:31:47,768190663+02:00 -1751027507.8711305,2025-06-27T14:31:47,870954931+02:00 -1751027508.0760953,2025-06-27T14:31:47,973100635+02:00 -1751027508.1799538,2025-06-27T14:31:48,075920773+02:00 -1751027508.2832413,2025-06-27T14:31:48,179757289+02:00 -1751027508.386527,2025-06-27T14:31:48,283051765+02:00 -1751027508.3865757,2025-06-27T14:31:48,386214571+02:00 -1751027508.593484,2025-06-27T14:31:48,489956086+02:00 -1751027508.6972637,2025-06-27T14:31:48,593279292+02:00 -1751027508.801516,2025-06-27T14:31:48,697073515+02:00 -1751027508.9056478,2025-06-27T14:31:48,801306805+02:00 -1751027508.9057205,2025-06-27T14:31:48,905435825+02:00 -hookend -2.065385103225708 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275061222936710834884607/after_initial_input b/tests/command_execution/.commandlogging/17510275061222936710834884607/after_initial_input deleted file mode 100644 index b27c3994..00000000 --- a/tests/command_execution/.commandlogging/17510275061222936710834884607/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027506.9419842,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00046944618225097656 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-0-out deleted file mode 100644 index 55c1b745..00000000 --- a/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751027506.9430377,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751027507.0449486,2025-06-27T14:31:46,941582907+02:00 -1751027507.1483352,2025-06-27T14:31:47,044492345+02:00 -1751027507.2520301,2025-06-27T14:31:47,147977061+02:00 -1751027507.3562737,2025-06-27T14:31:47,251583042+02:00 -1751027507.356353,2025-06-27T14:31:47,355803762+02:00 -1751027507.5625775,2025-06-27T14:31:47,459551954+02:00 -1751027507.6648753,2025-06-27T14:31:47,562185850+02:00 -1751027507.7688868,2025-06-27T14:31:47,664554933+02:00 -1751027507.8712437,2025-06-27T14:31:47,768190663+02:00 -1751027507.8712628,2025-06-27T14:31:47,870954931+02:00 -1751027508.0765398,2025-06-27T14:31:47,973100635+02:00 -1751027508.1803691,2025-06-27T14:31:48,075920773+02:00 -1751027508.2835166,2025-06-27T14:31:48,179757289+02:00 -1751027508.3870366,2025-06-27T14:31:48,283051765+02:00 -1751027508.38708,2025-06-27T14:31:48,386214571+02:00 -1751027508.5937357,2025-06-27T14:31:48,489956086+02:00 -1751027508.6975582,2025-06-27T14:31:48,593279292+02:00 -1751027508.8018382,2025-06-27T14:31:48,697073515+02:00 -1751027508.9060163,2025-06-27T14:31:48,801306805+02:00 -1751027508.9152443,2025-06-27T14:31:48,905435825+02:00 diff --git a/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-1-err b/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-1-err deleted file mode 100644 index 96a66371..00000000 --- a/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027506.9450219,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-err diff --git a/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-1-out b/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-1-out deleted file mode 100644 index 7d831a4b..00000000 --- a/tests/command_execution/.commandlogging/17510275061222936710834884607/hook_function_line-1-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751027506.9445171,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-1-out -1751027507.0454032,2025-06-27T14:31:46,941582907+02:00 -1751027507.1486135,2025-06-27T14:31:47,044492345+02:00 -1751027507.252323,2025-06-27T14:31:47,147977061+02:00 -1751027507.356486,2025-06-27T14:31:47,251583042+02:00 -1751027507.3565674,2025-06-27T14:31:47,355803762+02:00 -1751027507.5627587,2025-06-27T14:31:47,459551954+02:00 -1751027507.6649992,2025-06-27T14:31:47,562185850+02:00 -1751027507.7691443,2025-06-27T14:31:47,664554933+02:00 -1751027507.8713987,2025-06-27T14:31:47,768190663+02:00 -1751027507.8714244,2025-06-27T14:31:47,870954931+02:00 -1751027508.0766947,2025-06-27T14:31:47,973100635+02:00 -1751027508.180649,2025-06-27T14:31:48,075920773+02:00 -1751027508.283777,2025-06-27T14:31:48,179757289+02:00 -1751027508.3875127,2025-06-27T14:31:48,283051765+02:00 -1751027508.387548,2025-06-27T14:31:48,386214571+02:00 -1751027508.5939672,2025-06-27T14:31:48,489956086+02:00 -1751027508.6978228,2025-06-27T14:31:48,593279292+02:00 -1751027508.8020196,2025-06-27T14:31:48,697073515+02:00 -1751027508.9063063,2025-06-27T14:31:48,801306805+02:00 -1751027508.9154587,2025-06-27T14:31:48,905435825+02:00 diff --git a/tests/command_execution/.commandlogging/17510275061222936710834884607/void_input-2-err b/tests/command_execution/.commandlogging/17510275061222936710834884607/void_input-2-err deleted file mode 100644 index 7c05f624..00000000 --- a/tests/command_execution/.commandlogging/17510275061222936710834884607/void_input-2-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027506.945699,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-err diff --git a/tests/command_execution/.commandlogging/17510275061222936710834884607/void_input-2-out b/tests/command_execution/.commandlogging/17510275061222936710834884607/void_input-2-out deleted file mode 100644 index bfb03b17..00000000 --- a/tests/command_execution/.commandlogging/17510275061222936710834884607/void_input-2-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027506.9454944,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-2-out diff --git a/tests/command_execution/.commandlogging/17510275194239943051475391385/after_comand-0-err b/tests/command_execution/.commandlogging/17510275194239943051475391385/after_comand-0-err deleted file mode 100644 index 14218ee1..00000000 --- a/tests/command_execution/.commandlogging/17510275194239943051475391385/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027519.1633544,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0623366832733154 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275194239943051475391385/after_comand-0-out b/tests/command_execution/.commandlogging/17510275194239943051475391385/after_comand-0-out deleted file mode 100644 index 1630718b..00000000 --- a/tests/command_execution/.commandlogging/17510275194239943051475391385/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751027519.1628342,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751027519.2642198,2025-06-27T14:31:59,160631128+02:00 -1751027519.3676698,2025-06-27T14:31:59,263975607+02:00 -1751027519.47127,2025-06-27T14:31:59,367487571+02:00 -1751027519.5746195,2025-06-27T14:31:59,471065771+02:00 -1751027519.574665,2025-06-27T14:31:59,574388283+02:00 -1751027519.7811391,2025-06-27T14:31:59,678238923+02:00 -1751027519.8837743,2025-06-27T14:31:59,780998219+02:00 -1751027519.9870965,2025-06-27T14:31:59,883581067+02:00 -1751027520.0900686,2025-06-27T14:31:59,986927252+02:00 -1751027520.0901148,2025-06-27T14:32:00,089894835+02:00 -1751027520.2955587,2025-06-27T14:32:00,192014786+02:00 -1751027520.399507,2025-06-27T14:32:00,295359090+02:00 -1751027520.502995,2025-06-27T14:32:00,399338489+02:00 -1751027520.6065264,2025-06-27T14:32:00,502814762+02:00 -1751027520.6065776,2025-06-27T14:32:00,606340591+02:00 -1751027520.8136861,2025-06-27T14:32:00,710001696+02:00 -1751027520.9169822,2025-06-27T14:32:00,813516334+02:00 -1751027521.0208392,2025-06-27T14:32:00,916788187+02:00 -1751027521.124161,2025-06-27T14:32:01,020640799+02:00 -1751027521.1242251,2025-06-27T14:32:01,123991407+02:00 -hookend -2.062979221343994 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275194239943051475391385/after_initial_input b/tests/command_execution/.commandlogging/17510275194239943051475391385/after_initial_input deleted file mode 100644 index 5f1d36ca..00000000 --- a/tests/command_execution/.commandlogging/17510275194239943051475391385/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027519.1615179,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0003788471221923828 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275194239943051475391385/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510275194239943051475391385/hook_function_line-0-out deleted file mode 100644 index 56e74031..00000000 --- a/tests/command_execution/.commandlogging/17510275194239943051475391385/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751027519.164638,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751027519.2646244,2025-06-27T14:31:59,160631128+02:00 -1751027519.367805,2025-06-27T14:31:59,263975607+02:00 -1751027519.4715273,2025-06-27T14:31:59,367487571+02:00 -1751027519.5749211,2025-06-27T14:31:59,471065771+02:00 -1751027519.5749528,2025-06-27T14:31:59,574388283+02:00 -1751027519.7813854,2025-06-27T14:31:59,678238923+02:00 -1751027519.884076,2025-06-27T14:31:59,780998219+02:00 -1751027519.987344,2025-06-27T14:31:59,883581067+02:00 -1751027520.0903444,2025-06-27T14:31:59,986927252+02:00 -1751027520.090396,2025-06-27T14:32:00,089894835+02:00 -1751027520.2958393,2025-06-27T14:32:00,192014786+02:00 -1751027520.3997152,2025-06-27T14:32:00,295359090+02:00 -1751027520.5032222,2025-06-27T14:32:00,399338489+02:00 -1751027520.6067622,2025-06-27T14:32:00,502814762+02:00 -1751027520.606811,2025-06-27T14:32:00,606340591+02:00 -1751027520.813941,2025-06-27T14:32:00,710001696+02:00 -1751027520.917161,2025-06-27T14:32:00,813516334+02:00 -1751027521.0211284,2025-06-27T14:32:00,916788187+02:00 -1751027521.1242857,2025-06-27T14:32:01,020640799+02:00 -1751027521.1243317,2025-06-27T14:32:01,123991407+02:00 diff --git a/tests/command_execution/.commandlogging/17510275194239943051475391385/void_input-1-err b/tests/command_execution/.commandlogging/17510275194239943051475391385/void_input-1-err deleted file mode 100644 index 2411496c..00000000 --- a/tests/command_execution/.commandlogging/17510275194239943051475391385/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027519.1660333,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510275194239943051475391385/void_input-1-out b/tests/command_execution/.commandlogging/17510275194239943051475391385/void_input-1-out deleted file mode 100644 index e738ddac..00000000 --- a/tests/command_execution/.commandlogging/17510275194239943051475391385/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027519.1657507,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510275384121131127726226779/after_comand-0-err b/tests/command_execution/.commandlogging/17510275384121131127726226779/after_comand-0-err deleted file mode 100644 index d570690b..00000000 --- a/tests/command_execution/.commandlogging/17510275384121131127726226779/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027538.859614,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0649213790893555 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275384121131127726226779/after_comand-0-out b/tests/command_execution/.commandlogging/17510275384121131127726226779/after_comand-0-out deleted file mode 100644 index 8856616b..00000000 --- a/tests/command_execution/.commandlogging/17510275384121131127726226779/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751027538.8595843,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751027538.9621632,2025-06-27T14:32:18,859157324+02:00 -1751027539.0656312,2025-06-27T14:32:18,961964252+02:00 -1751027539.1689672,2025-06-27T14:32:19,065489116+02:00 -1751027539.2722592,2025-06-27T14:32:19,168797306+02:00 -1751027539.2723088,2025-06-27T14:32:19,272085678+02:00 -1751027539.4782608,2025-06-27T14:32:19,375449955+02:00 -1751027539.5816872,2025-06-27T14:32:19,478115555+02:00 -1751027539.6851306,2025-06-27T14:32:19,581508692+02:00 -1751027539.7884567,2025-06-27T14:32:19,684939691+02:00 -1751027539.7885094,2025-06-27T14:32:19,788272642+02:00 -1751027539.9937592,2025-06-27T14:32:19,890646648+02:00 -1751027540.0969167,2025-06-27T14:32:19,993543878+02:00 -1751027540.2005332,2025-06-27T14:32:20,096768594+02:00 -1751027540.3047059,2025-06-27T14:32:20,200339734+02:00 -1751027540.3047485,2025-06-27T14:32:20,304515880+02:00 -1751027540.511829,2025-06-27T14:32:20,408094090+02:00 -1751027540.6150541,2025-06-27T14:32:20,511665970+02:00 -1751027540.7191293,2025-06-27T14:32:20,614898050+02:00 -1751027540.822975,2025-06-27T14:32:20,718854777+02:00 -1751027540.8230286,2025-06-27T14:32:20,822792211+02:00 -hookend -2.0649161338806152 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275384121131127726226779/after_initial_input b/tests/command_execution/.commandlogging/17510275384121131127726226779/after_initial_input deleted file mode 100644 index a50720d1..00000000 --- a/tests/command_execution/.commandlogging/17510275384121131127726226779/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027538.8587437,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0003275871276855469 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510275384121131127726226779/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510275384121131127726226779/hook_function_line-0-out deleted file mode 100644 index d399e2b4..00000000 --- a/tests/command_execution/.commandlogging/17510275384121131127726226779/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751027538.8602257,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751027538.9624596,2025-06-27T14:32:18,859157324+02:00 -1751027539.0658708,2025-06-27T14:32:18,961964252+02:00 -1751027539.1693075,2025-06-27T14:32:19,065489116+02:00 -1751027539.272588,2025-06-27T14:32:19,168797306+02:00 -1751027539.2726274,2025-06-27T14:32:19,272085678+02:00 -1751027539.4785419,2025-06-27T14:32:19,375449955+02:00 -1751027539.5818844,2025-06-27T14:32:19,478115555+02:00 -1751027539.6854017,2025-06-27T14:32:19,581508692+02:00 -1751027539.788664,2025-06-27T14:32:19,684939691+02:00 -1751027539.7886963,2025-06-27T14:32:19,788272642+02:00 -1751027539.994058,2025-06-27T14:32:19,890646648+02:00 -1751027540.0971444,2025-06-27T14:32:19,993543878+02:00 -1751027540.2008893,2025-06-27T14:32:20,096768594+02:00 -1751027540.3050053,2025-06-27T14:32:20,200339734+02:00 -1751027540.3050444,2025-06-27T14:32:20,304515880+02:00 -1751027540.5121455,2025-06-27T14:32:20,408094090+02:00 -1751027540.6152802,2025-06-27T14:32:20,511665970+02:00 -1751027540.7194235,2025-06-27T14:32:20,614898050+02:00 -1751027540.8232443,2025-06-27T14:32:20,718854777+02:00 -1751027540.8233364,2025-06-27T14:32:20,822792211+02:00 diff --git a/tests/command_execution/.commandlogging/17510275384121131127726226779/void_input-1-err b/tests/command_execution/.commandlogging/17510275384121131127726226779/void_input-1-err deleted file mode 100644 index 03811265..00000000 --- a/tests/command_execution/.commandlogging/17510275384121131127726226779/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027538.8619947,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510275384121131127726226779/void_input-1-out b/tests/command_execution/.commandlogging/17510275384121131127726226779/void_input-1-out deleted file mode 100644 index 72f93f00..00000000 --- a/tests/command_execution/.commandlogging/17510275384121131127726226779/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027538.8612459,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/1751027691560915493581199542/after_comand-0-err b/tests/command_execution/.commandlogging/1751027691560915493581199542/after_comand-0-err deleted file mode 100644 index 10320a19..00000000 --- a/tests/command_execution/.commandlogging/1751027691560915493581199542/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027691.1558588,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.067044496536255 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751027691560915493581199542/after_comand-0-out b/tests/command_execution/.commandlogging/1751027691560915493581199542/after_comand-0-out deleted file mode 100644 index 0e86e862..00000000 --- a/tests/command_execution/.commandlogging/1751027691560915493581199542/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751027691.1556156,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751027691.258655,2025-06-27T14:34:51,155207415+02:00 -1751027691.3625324,2025-06-27T14:34:51,258453726+02:00 -1751027691.4660287,2025-06-27T14:34:51,362347699+02:00 -1751027691.569702,2025-06-27T14:34:51,465844907+02:00 -1751027691.5697548,2025-06-27T14:34:51,569518745+02:00 -1751027691.7759628,2025-06-27T14:34:51,673053702+02:00 -1751027691.8786657,2025-06-27T14:34:51,775776438+02:00 -1751027691.9821014,2025-06-27T14:34:51,878522578+02:00 -1751027692.0851471,2025-06-27T14:34:51,981920566+02:00 -1751027692.0852036,2025-06-27T14:34:52,084991317+02:00 -1751027692.2920282,2025-06-27T14:34:52,188048828+02:00 -1751027692.3959057,2025-06-27T14:34:52,291853631+02:00 -1751027692.5000308,2025-06-27T14:34:52,395690145+02:00 -1751027692.6040866,2025-06-27T14:34:52,499836229+02:00 -1751027692.6041305,2025-06-27T14:34:52,603921259+02:00 -1751027692.8100526,2025-06-27T14:34:52,706348747+02:00 -1751027692.9135888,2025-06-27T14:34:52,809859769+02:00 -1751027693.0169997,2025-06-27T14:34:52,913396615+02:00 -1751027693.120955,2025-06-27T14:34:53,016813256+02:00 -1751027693.1210072,2025-06-27T14:34:53,120742620+02:00 -hookend -2.0673129558563232 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751027691560915493581199542/after_initial_input b/tests/command_execution/.commandlogging/1751027691560915493581199542/after_initial_input deleted file mode 100644 index a651771f..00000000 --- a/tests/command_execution/.commandlogging/1751027691560915493581199542/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027691.1550772,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0004611015319824219 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/1751027691560915493581199542/hook_function_line-0-out b/tests/command_execution/.commandlogging/1751027691560915493581199542/hook_function_line-0-out deleted file mode 100644 index b09e4e4c..00000000 --- a/tests/command_execution/.commandlogging/1751027691560915493581199542/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751027691.1567945,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751027691.258912,2025-06-27T14:34:51,155207415+02:00 -1751027691.3627472,2025-06-27T14:34:51,258453726+02:00 -1751027691.4663053,2025-06-27T14:34:51,362347699+02:00 -1751027691.569929,2025-06-27T14:34:51,465844907+02:00 -1751027691.5700119,2025-06-27T14:34:51,569518745+02:00 -1751027691.7762089,2025-06-27T14:34:51,673053702+02:00 -1751027691.8789184,2025-06-27T14:34:51,775776438+02:00 -1751027691.982794,2025-06-27T14:34:51,878522578+02:00 -1751027692.0853748,2025-06-27T14:34:51,981920566+02:00 -1751027692.0854056,2025-06-27T14:34:52,084991317+02:00 -1751027692.2922747,2025-06-27T14:34:52,188048828+02:00 -1751027692.396314,2025-06-27T14:34:52,291853631+02:00 -1751027692.5002923,2025-06-27T14:34:52,395690145+02:00 -1751027692.604367,2025-06-27T14:34:52,499836229+02:00 -1751027692.6043973,2025-06-27T14:34:52,603921259+02:00 -1751027692.8102915,2025-06-27T14:34:52,706348747+02:00 -1751027692.9137886,2025-06-27T14:34:52,809859769+02:00 -1751027693.017307,2025-06-27T14:34:52,913396615+02:00 -1751027693.1212416,2025-06-27T14:34:53,016813256+02:00 -1751027693.1212852,2025-06-27T14:34:53,120742620+02:00 diff --git a/tests/command_execution/.commandlogging/1751027691560915493581199542/void_input-1-err b/tests/command_execution/.commandlogging/1751027691560915493581199542/void_input-1-err deleted file mode 100644 index 13cedafb..00000000 --- a/tests/command_execution/.commandlogging/1751027691560915493581199542/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027691.1577911,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/1751027691560915493581199542/void_input-1-out b/tests/command_execution/.commandlogging/1751027691560915493581199542/void_input-1-out deleted file mode 100644 index 86e4f821..00000000 --- a/tests/command_execution/.commandlogging/1751027691560915493581199542/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027691.1571338,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510277949065025034801274345/after_comand-0-err b/tests/command_execution/.commandlogging/17510277949065025034801274345/after_comand-0-err deleted file mode 100644 index 743989f8..00000000 --- a/tests/command_execution/.commandlogging/17510277949065025034801274345/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027794.0847795,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0646705627441406 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510277949065025034801274345/after_comand-0-out b/tests/command_execution/.commandlogging/17510277949065025034801274345/after_comand-0-out deleted file mode 100644 index 6377c6c5..00000000 --- a/tests/command_execution/.commandlogging/17510277949065025034801274345/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751027794.0842621,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751027794.1847036,2025-06-27T14:36:34,082372620+02:00 -1751027794.288055,2025-06-27T14:36:34,184505794+02:00 -1751027794.3908765,2025-06-27T14:36:34,287892293+02:00 -1751027794.4939003,2025-06-27T14:36:34,390729011+02:00 -1751027794.4939537,2025-06-27T14:36:34,493732634+02:00 -1751027794.7002513,2025-06-27T14:36:34,597408063+02:00 -1751027794.8033803,2025-06-27T14:36:34,700127867+02:00 -1751027794.9069264,2025-06-27T14:36:34,803199860+02:00 -1751027795.0109146,2025-06-27T14:36:34,906730995+02:00 -1751027795.0109713,2025-06-27T14:36:35,010739377+02:00 -1751027795.2171032,2025-06-27T14:36:35,112948913+02:00 -1751027795.3213484,2025-06-27T14:36:35,216911526+02:00 -1751027795.4256153,2025-06-27T14:36:35,321138048+02:00 -1751027795.52891,2025-06-27T14:36:35,425391022+02:00 -1751027795.528954,2025-06-27T14:36:35,528735231+02:00 -1751027795.7364416,2025-06-27T14:36:35,632672839+02:00 -1751027795.8406284,2025-06-27T14:36:35,736246271+02:00 -1751027795.943926,2025-06-27T14:36:35,840447757+02:00 -1751027796.0479188,2025-06-27T14:36:35,943740377+02:00 -1751027796.047977,2025-06-27T14:36:36,047709151+02:00 -hookend -2.065187931060791 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510277949065025034801274345/after_initial_input b/tests/command_execution/.commandlogging/17510277949065025034801274345/after_initial_input deleted file mode 100644 index cf343503..00000000 --- a/tests/command_execution/.commandlogging/17510277949065025034801274345/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027794.082958,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0002579689025878906 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510277949065025034801274345/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510277949065025034801274345/hook_function_line-0-out deleted file mode 100644 index db26376c..00000000 --- a/tests/command_execution/.commandlogging/17510277949065025034801274345/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751027794.086002,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751027794.1848924,2025-06-27T14:36:34,082372620+02:00 -1751027794.288276,2025-06-27T14:36:34,184505794+02:00 -1751027794.391155,2025-06-27T14:36:34,287892293+02:00 -1751027794.4941566,2025-06-27T14:36:34,390729011+02:00 -1751027794.4943435,2025-06-27T14:36:34,493732634+02:00 -1751027794.700506,2025-06-27T14:36:34,597408063+02:00 -1751027794.8036587,2025-06-27T14:36:34,700127867+02:00 -1751027794.9072573,2025-06-27T14:36:34,803199860+02:00 -1751027795.0111506,2025-06-27T14:36:34,906730995+02:00 -1751027795.0112662,2025-06-27T14:36:35,010739377+02:00 -1751027795.2173874,2025-06-27T14:36:35,112948913+02:00 -1751027795.3215919,2025-06-27T14:36:35,216911526+02:00 -1751027795.4258382,2025-06-27T14:36:35,321138048+02:00 -1751027795.5291355,2025-06-27T14:36:35,425391022+02:00 -1751027795.5291758,2025-06-27T14:36:35,528735231+02:00 -1751027795.736793,2025-06-27T14:36:35,632672839+02:00 -1751027795.8408322,2025-06-27T14:36:35,736246271+02:00 -1751027795.944139,2025-06-27T14:36:35,840447757+02:00 -1751027796.0481296,2025-06-27T14:36:35,943740377+02:00 -1751027796.048227,2025-06-27T14:36:36,047709151+02:00 diff --git a/tests/command_execution/.commandlogging/17510277949065025034801274345/void_input-1-err b/tests/command_execution/.commandlogging/17510277949065025034801274345/void_input-1-err deleted file mode 100644 index 08ac768e..00000000 --- a/tests/command_execution/.commandlogging/17510277949065025034801274345/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027794.0878375,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510277949065025034801274345/void_input-1-out b/tests/command_execution/.commandlogging/17510277949065025034801274345/void_input-1-out deleted file mode 100644 index 00d5b176..00000000 --- a/tests/command_execution/.commandlogging/17510277949065025034801274345/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027794.087163,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510278265146615098218632368/after_comand-0-err b/tests/command_execution/.commandlogging/17510278265146615098218632368/after_comand-0-err deleted file mode 100644 index 09e523c2..00000000 --- a/tests/command_execution/.commandlogging/17510278265146615098218632368/after_comand-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027826.7208884,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err diff --git a/tests/command_execution/.commandlogging/17510278265146615098218632368/after_comand-0-out b/tests/command_execution/.commandlogging/17510278265146615098218632368/after_comand-0-out deleted file mode 100644 index bae47912..00000000 --- a/tests/command_execution/.commandlogging/17510278265146615098218632368/after_comand-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751027826.7205858,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751027826.8237267,2025-06-27T14:37:06,720236834+02:00 -1751027826.927496,2025-06-27T14:37:06,823526661+02:00 -1751027827.0313845,2025-06-27T14:37:06,927315096+02:00 -1751027827.1351886,2025-06-27T14:37:07,031128485+02:00 -1751027827.1352482,2025-06-27T14:37:07,134996830+02:00 -1751027827.3411794,2025-06-27T14:37:07,238361904+02:00 -1751027827.443986,2025-06-27T14:37:07,341004490+02:00 -1751027827.5469484,2025-06-27T14:37:07,443826163+02:00 -1751027827.6507676,2025-06-27T14:37:07,546807080+02:00 -1751027827.6508217,2025-06-27T14:37:07,650570304+02:00 -1751027827.8560796,2025-06-27T14:37:07,752935703+02:00 -1751027827.95949,2025-06-27T14:37:07,855896078+02:00 -1751027828.0624208,2025-06-27T14:37:07,959322512+02:00 -1751027828.1650252,2025-06-27T14:37:08,062222561+02:00 -1751027828.1650703,2025-06-27T14:37:08,164893144+02:00 -1751027828.372347,2025-06-27T14:37:08,268673517+02:00 -1751027828.4762185,2025-06-27T14:37:08,372123085+02:00 -1751027828.579877,2025-06-27T14:37:08,475974147+02:00 -1751027828.6839285,2025-06-27T14:37:08,579696584+02:00 -1751027828.6839814,2025-06-27T14:37:08,683711422+02:00 diff --git a/tests/command_execution/.commandlogging/17510278265146615098218632368/after_initial_input b/tests/command_execution/.commandlogging/17510278265146615098218632368/after_initial_input deleted file mode 100644 index a1b1a9eb..00000000 --- a/tests/command_execution/.commandlogging/17510278265146615098218632368/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027826.7200153,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0003426074981689453 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510278265146615098218632368/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510278265146615098218632368/hook_function_line-0-out deleted file mode 100644 index f44f813c..00000000 --- a/tests/command_execution/.commandlogging/17510278265146615098218632368/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751027826.721598,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751027826.823983,2025-06-27T14:37:06,720236834+02:00 -1751027826.927764,2025-06-27T14:37:06,823526661+02:00 -1751027827.0316389,2025-06-27T14:37:06,927315096+02:00 -1751027827.1354342,2025-06-27T14:37:07,031128485+02:00 -1751027827.1354973,2025-06-27T14:37:07,134996830+02:00 -1751027827.3414023,2025-06-27T14:37:07,238361904+02:00 -1751027827.4442039,2025-06-27T14:37:07,341004490+02:00 -1751027827.5471346,2025-06-27T14:37:07,443826163+02:00 -1751027827.6509244,2025-06-27T14:37:07,546807080+02:00 -1751027827.6509638,2025-06-27T14:37:07,650570304+02:00 -1751027827.8562837,2025-06-27T14:37:07,752935703+02:00 -1751027827.9597125,2025-06-27T14:37:07,855896078+02:00 -1751027828.0626686,2025-06-27T14:37:07,959322512+02:00 -1751027828.1652198,2025-06-27T14:37:08,062222561+02:00 -1751027828.1652749,2025-06-27T14:37:08,164893144+02:00 -1751027828.372582,2025-06-27T14:37:08,268673517+02:00 -1751027828.4764802,2025-06-27T14:37:08,372123085+02:00 -1751027828.5801644,2025-06-27T14:37:08,475974147+02:00 -1751027828.68419,2025-06-27T14:37:08,579696584+02:00 -1751027828.6842499,2025-06-27T14:37:08,683711422+02:00 diff --git a/tests/command_execution/.commandlogging/17510278265146615098218632368/void_input-1-err b/tests/command_execution/.commandlogging/17510278265146615098218632368/void_input-1-err deleted file mode 100644 index a7b439a7..00000000 --- a/tests/command_execution/.commandlogging/17510278265146615098218632368/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027826.7224727,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510278265146615098218632368/void_input-1-out b/tests/command_execution/.commandlogging/17510278265146615098218632368/void_input-1-out deleted file mode 100644 index 37d0bd03..00000000 --- a/tests/command_execution/.commandlogging/17510278265146615098218632368/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027826.722177,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510278435495815789182149599/after_comand-0-err b/tests/command_execution/.commandlogging/17510278435495815789182149599/after_comand-0-err deleted file mode 100644 index 8c51163c..00000000 --- a/tests/command_execution/.commandlogging/17510278435495815789182149599/after_comand-0-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027843.9027493,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err diff --git a/tests/command_execution/.commandlogging/17510278435495815789182149599/after_comand-0-out b/tests/command_execution/.commandlogging/17510278435495815789182149599/after_comand-0-out deleted file mode 100644 index 8521324b..00000000 --- a/tests/command_execution/.commandlogging/17510278435495815789182149599/after_comand-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751027843.9020836,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751027844.0047367,2025-06-27T14:37:23,901306422+02:00 -1751027844.1081464,2025-06-27T14:37:24,004515408+02:00 -1751027844.2114906,2025-06-27T14:37:24,107951769+02:00 -1751027844.3151512,2025-06-27T14:37:24,211160640+02:00 -1751027844.3152246,2025-06-27T14:37:24,314965783+02:00 -1751027844.521822,2025-06-27T14:37:24,418607584+02:00 -1751027844.6240804,2025-06-27T14:37:24,521666206+02:00 -1751027844.7274442,2025-06-27T14:37:24,623961699+02:00 -1751027844.8306904,2025-06-27T14:37:24,727268731+02:00 -1751027844.8307436,2025-06-27T14:37:24,830494335+02:00 -1751027845.0379305,2025-06-27T14:37:24,934096788+02:00 -1751027845.1416693,2025-06-27T14:37:25,037750822+02:00 -1751027845.245069,2025-06-27T14:37:25,141484719+02:00 -1751027845.3479433,2025-06-27T14:37:25,244866740+02:00 -1751027845.3479896,2025-06-27T14:37:25,347785862+02:00 -1751027845.5540428,2025-06-27T14:37:25,451342047+02:00 -1751027845.6568568,2025-06-27T14:37:25,553844498+02:00 -1751027845.7605944,2025-06-27T14:37:25,656678888+02:00 -1751027845.8633997,2025-06-27T14:37:25,760403657+02:00 -1751027845.8634446,2025-06-27T14:37:25,863155536+02:00 diff --git a/tests/command_execution/.commandlogging/17510278435495815789182149599/after_initial_input b/tests/command_execution/.commandlogging/17510278435495815789182149599/after_initial_input deleted file mode 100644 index 3436673c..00000000 --- a/tests/command_execution/.commandlogging/17510278435495815789182149599/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027843.9018168,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00038743019104003906 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510278435495815789182149599/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510278435495815789182149599/hook_function_line-0-out deleted file mode 100644 index 7a4b865b..00000000 --- a/tests/command_execution/.commandlogging/17510278435495815789182149599/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751027843.9036984,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751027844.0050595,2025-06-27T14:37:23,901306422+02:00 -1751027844.1083417,2025-06-27T14:37:24,004515408+02:00 -1751027844.2117352,2025-06-27T14:37:24,107951769+02:00 -1751027844.315421,2025-06-27T14:37:24,211160640+02:00 -1751027844.315461,2025-06-27T14:37:24,314965783+02:00 -1751027844.521969,2025-06-27T14:37:24,418607584+02:00 -1751027844.6242101,2025-06-27T14:37:24,521666206+02:00 -1751027844.7276583,2025-06-27T14:37:24,623961699+02:00 -1751027844.8309922,2025-06-27T14:37:24,727268731+02:00 -1751027844.8310318,2025-06-27T14:37:24,830494335+02:00 -1751027845.0382562,2025-06-27T14:37:24,934096788+02:00 -1751027845.1419075,2025-06-27T14:37:25,037750822+02:00 -1751027845.2453485,2025-06-27T14:37:25,141484719+02:00 -1751027845.3482375,2025-06-27T14:37:25,244866740+02:00 -1751027845.3482704,2025-06-27T14:37:25,347785862+02:00 -1751027845.5543056,2025-06-27T14:37:25,451342047+02:00 -1751027845.6572275,2025-06-27T14:37:25,553844498+02:00 -1751027845.76093,2025-06-27T14:37:25,656678888+02:00 -1751027845.863599,2025-06-27T14:37:25,760403657+02:00 -1751027845.8636298,2025-06-27T14:37:25,863155536+02:00 diff --git a/tests/command_execution/.commandlogging/17510278435495815789182149599/void_input-1-err b/tests/command_execution/.commandlogging/17510278435495815789182149599/void_input-1-err deleted file mode 100644 index 2f9cbcb8..00000000 --- a/tests/command_execution/.commandlogging/17510278435495815789182149599/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027843.9050114,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510278435495815789182149599/void_input-1-out b/tests/command_execution/.commandlogging/17510278435495815789182149599/void_input-1-out deleted file mode 100644 index 475fd851..00000000 --- a/tests/command_execution/.commandlogging/17510278435495815789182149599/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027843.904436,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510278954603509299118523721/after_comand-0-err b/tests/command_execution/.commandlogging/17510278954603509299118523721/after_comand-0-err deleted file mode 100644 index f57e6040..00000000 --- a/tests/command_execution/.commandlogging/17510278954603509299118523721/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027895.3761578,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0648059844970703 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510278954603509299118523721/after_comand-0-out b/tests/command_execution/.commandlogging/17510278954603509299118523721/after_comand-0-out deleted file mode 100644 index 9ff9e562..00000000 --- a/tests/command_execution/.commandlogging/17510278954603509299118523721/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751027895.375819,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751027895.4786901,2025-06-27T14:38:15,375107585+02:00 -1751027895.581912,2025-06-27T14:38:15,478475391+02:00 -1751027895.6853068,2025-06-27T14:38:15,581714915+02:00 -1751027895.788518,2025-06-27T14:38:15,685111407+02:00 -1751027895.7885644,2025-06-27T14:38:15,788220858+02:00 -1751027895.9945042,2025-06-27T14:38:15,891800613+02:00 -1751027896.0973754,2025-06-27T14:38:15,994425861+02:00 -1751027896.2008915,2025-06-27T14:38:16,097277893+02:00 -1751027896.3041153,2025-06-27T14:38:16,200713290+02:00 -1751027896.3041801,2025-06-27T14:38:16,303931476+02:00 -1751027896.509592,2025-06-27T14:38:16,406453978+02:00 -1751027896.6132383,2025-06-27T14:38:16,509354851+02:00 -1751027896.7168384,2025-06-27T14:38:16,613028848+02:00 -1751027896.8208504,2025-06-27T14:38:16,716646237+02:00 -1751027896.820898,2025-06-27T14:38:16,820653244+02:00 -1751027897.0279105,2025-06-27T14:38:16,924526499+02:00 -1751027897.1311066,2025-06-27T14:38:17,027750295+02:00 -1751027897.235127,2025-06-27T14:38:17,130937205+02:00 -1751027897.3388312,2025-06-27T14:38:17,234946843+02:00 -1751027897.3388808,2025-06-27T14:38:17,338654914+02:00 -hookend -2.065183162689209 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510278954603509299118523721/after_initial_input b/tests/command_execution/.commandlogging/17510278954603509299118523721/after_initial_input deleted file mode 100644 index f5c4ca58..00000000 --- a/tests/command_execution/.commandlogging/17510278954603509299118523721/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027895.3752325,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0004165172576904297 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510278954603509299118523721/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510278954603509299118523721/hook_function_line-0-out deleted file mode 100644 index 21dc9419..00000000 --- a/tests/command_execution/.commandlogging/17510278954603509299118523721/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751027895.3762326,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751027895.4788597,2025-06-27T14:38:15,375107585+02:00 -1751027895.5821257,2025-06-27T14:38:15,478475391+02:00 -1751027895.6855793,2025-06-27T14:38:15,581714915+02:00 -1751027895.7887542,2025-06-27T14:38:15,685111407+02:00 -1751027895.7888534,2025-06-27T14:38:15,788220858+02:00 -1751027895.9946027,2025-06-27T14:38:15,891800613+02:00 -1751027896.0975595,2025-06-27T14:38:15,994425861+02:00 -1751027896.2011285,2025-06-27T14:38:16,097277893+02:00 -1751027896.304468,2025-06-27T14:38:16,200713290+02:00 -1751027896.3046904,2025-06-27T14:38:16,303931476+02:00 -1751027896.5098484,2025-06-27T14:38:16,406453978+02:00 -1751027896.6135275,2025-06-27T14:38:16,509354851+02:00 -1751027896.7169847,2025-06-27T14:38:16,613028848+02:00 -1751027896.821085,2025-06-27T14:38:16,716646237+02:00 -1751027896.821116,2025-06-27T14:38:16,820653244+02:00 -1751027897.0282135,2025-06-27T14:38:16,924526499+02:00 -1751027897.1312463,2025-06-27T14:38:17,027750295+02:00 -1751027897.235316,2025-06-27T14:38:17,130937205+02:00 -1751027897.339278,2025-06-27T14:38:17,234946843+02:00 -1751027897.3394737,2025-06-27T14:38:17,338654914+02:00 diff --git a/tests/command_execution/.commandlogging/17510278954603509299118523721/void_input-1-err b/tests/command_execution/.commandlogging/17510278954603509299118523721/void_input-1-err deleted file mode 100644 index e7f58d3a..00000000 --- a/tests/command_execution/.commandlogging/17510278954603509299118523721/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027895.3776515,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510278954603509299118523721/void_input-1-out b/tests/command_execution/.commandlogging/17510278954603509299118523721/void_input-1-out deleted file mode 100644 index 09b906d2..00000000 --- a/tests/command_execution/.commandlogging/17510278954603509299118523721/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027895.3777616,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510279111824369709155032513/after_comand-0-err b/tests/command_execution/.commandlogging/17510279111824369709155032513/after_comand-0-err deleted file mode 100644 index 6cd5d027..00000000 --- a/tests/command_execution/.commandlogging/17510279111824369709155032513/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027911.9684753,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0546650886535645 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510279111824369709155032513/after_comand-0-out b/tests/command_execution/.commandlogging/17510279111824369709155032513/after_comand-0-out deleted file mode 100644 index 4f732ee4..00000000 --- a/tests/command_execution/.commandlogging/17510279111824369709155032513/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751027911.9676542,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751027912.0695138,2025-06-27T14:38:31,966516362+02:00 -1751027912.172989,2025-06-27T14:38:32,069331463+02:00 -1751027912.2769208,2025-06-27T14:38:32,172804112+02:00 -1751027912.3800113,2025-06-27T14:38:32,276743977+02:00 -1751027912.3800614,2025-06-27T14:38:32,379832639+02:00 -1751027912.5866678,2025-06-27T14:38:32,483555865+02:00 -1751027912.6901581,2025-06-27T14:38:32,586468029+02:00 -1751027912.7937033,2025-06-27T14:38:32,689977992+02:00 -1751027912.8968987,2025-06-27T14:38:32,793516327+02:00 -1751027912.896952,2025-06-27T14:38:32,896726581+02:00 -1751027913.1013188,2025-06-27T14:38:32,999067946+02:00 -1751027913.2037365,2025-06-27T14:38:33,101015982+02:00 -1751027913.3063114,2025-06-27T14:38:33,203600577+02:00 -1751027913.4086206,2025-06-27T14:38:33,306136526+02:00 -1751027913.4086547,2025-06-27T14:38:33,408452806+02:00 -1751027913.6136634,2025-06-27T14:38:33,511008885+02:00 -1751027913.716431,2025-06-27T14:38:33,613502532+02:00 -1751027913.8187923,2025-06-27T14:38:33,716152716+02:00 -1751027913.9216251,2025-06-27T14:38:33,818714633+02:00 -1751027913.9216738,2025-06-27T14:38:33,921433452+02:00 -hookend -2.0554254055023193 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510279111824369709155032513/after_initial_input b/tests/command_execution/.commandlogging/17510279111824369709155032513/after_initial_input deleted file mode 100644 index 7c091257..00000000 --- a/tests/command_execution/.commandlogging/17510279111824369709155032513/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751027911.967417,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00036835670471191406 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510279111824369709155032513/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510279111824369709155032513/hook_function_line-0-out deleted file mode 100644 index b71e5362..00000000 --- a/tests/command_execution/.commandlogging/17510279111824369709155032513/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751027911.9689515,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751027912.069678,2025-06-27T14:38:31,966516362+02:00 -1751027912.173217,2025-06-27T14:38:32,069331463+02:00 -1751027912.2772174,2025-06-27T14:38:32,172804112+02:00 -1751027912.3802624,2025-06-27T14:38:32,276743977+02:00 -1751027912.3803513,2025-06-27T14:38:32,379832639+02:00 -1751027912.5869806,2025-06-27T14:38:32,483555865+02:00 -1751027912.6904895,2025-06-27T14:38:32,586468029+02:00 -1751027912.7939513,2025-06-27T14:38:32,689977992+02:00 -1751027912.8972654,2025-06-27T14:38:32,793516327+02:00 -1751027912.8973067,2025-06-27T14:38:32,896726581+02:00 -1751027913.1014762,2025-06-27T14:38:32,999067946+02:00 -1751027913.2039979,2025-06-27T14:38:33,101015982+02:00 -1751027913.3065655,2025-06-27T14:38:33,203600577+02:00 -1751027913.4089284,2025-06-27T14:38:33,306136526+02:00 -1751027913.4089782,2025-06-27T14:38:33,408452806+02:00 -1751027913.613863,2025-06-27T14:38:33,511008885+02:00 -1751027913.71662,2025-06-27T14:38:33,613502532+02:00 -1751027913.8189645,2025-06-27T14:38:33,716152716+02:00 -1751027913.9219081,2025-06-27T14:38:33,818714633+02:00 -1751027913.9219496,2025-06-27T14:38:33,921433452+02:00 diff --git a/tests/command_execution/.commandlogging/17510279111824369709155032513/void_input-1-err b/tests/command_execution/.commandlogging/17510279111824369709155032513/void_input-1-err deleted file mode 100644 index cf464373..00000000 --- a/tests/command_execution/.commandlogging/17510279111824369709155032513/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027911.9710424,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510279111824369709155032513/void_input-1-out b/tests/command_execution/.commandlogging/17510279111824369709155032513/void_input-1-out deleted file mode 100644 index a8820520..00000000 --- a/tests/command_execution/.commandlogging/17510279111824369709155032513/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751027911.9703016,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510281386106517343193566288/after_comand-0-err b/tests/command_execution/.commandlogging/17510281386106517343193566288/after_comand-0-err deleted file mode 100644 index 221a2e6d..00000000 --- a/tests/command_execution/.commandlogging/17510281386106517343193566288/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751028138.0849483,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0640628337860107 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510281386106517343193566288/after_comand-0-out b/tests/command_execution/.commandlogging/17510281386106517343193566288/after_comand-0-out deleted file mode 100644 index 80a7badd..00000000 --- a/tests/command_execution/.commandlogging/17510281386106517343193566288/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751028138.0842063,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751028138.1868637,2025-06-27T14:42:18,083948310+02:00 -1751028138.2907305,2025-06-27T14:42:18,186703103+02:00 -1751028138.3941128,2025-06-27T14:42:18,290549516+02:00 -1751028138.4979715,2025-06-27T14:42:18,393919083+02:00 -1751028138.4980214,2025-06-27T14:42:18,497793291+02:00 -1751028138.7043622,2025-06-27T14:42:18,601430808+02:00 -1751028138.8069966,2025-06-27T14:42:18,704258830+02:00 -1751028138.9105642,2025-06-27T14:42:18,806848401+02:00 -1751028139.0142083,2025-06-27T14:42:18,910389573+02:00 -1751028139.014265,2025-06-27T14:42:19,014008389+02:00 -1751028139.220092,2025-06-27T14:42:19,116593390+02:00 -1751028139.323972,2025-06-27T14:42:19,219910588+02:00 -1751028139.427654,2025-06-27T14:42:19,323744206+02:00 -1751028139.531219,2025-06-27T14:42:19,427471766+02:00 -1751028139.5312903,2025-06-27T14:42:19,530990025+02:00 -1751028139.7372148,2025-06-27T14:42:19,634064504+02:00 -1751028139.8406444,2025-06-27T14:42:19,736992960+02:00 -1751028139.9444094,2025-06-27T14:42:19,840467750+02:00 -1751028140.0474384,2025-06-27T14:42:19,944205266+02:00 -1751028140.047478,2025-06-27T14:42:20,047305056+02:00 -hookend -2.0647339820861816 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510281386106517343193566288/after_initial_input b/tests/command_execution/.commandlogging/17510281386106517343193566288/after_initial_input deleted file mode 100644 index aa674ed1..00000000 --- a/tests/command_execution/.commandlogging/17510281386106517343193566288/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751028138.0840635,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.00036978721618652344 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510281386106517343193566288/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510281386106517343193566288/hook_function_line-0-out deleted file mode 100644 index 24a06f53..00000000 --- a/tests/command_execution/.commandlogging/17510281386106517343193566288/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751028138.0857978,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751028138.187022,2025-06-27T14:42:18,083948310+02:00 -1751028138.2909286,2025-06-27T14:42:18,186703103+02:00 -1751028138.3943644,2025-06-27T14:42:18,290549516+02:00 -1751028138.498261,2025-06-27T14:42:18,393919083+02:00 -1751028138.498338,2025-06-27T14:42:18,497793291+02:00 -1751028138.7047067,2025-06-27T14:42:18,601430808+02:00 -1751028138.8072734,2025-06-27T14:42:18,704258830+02:00 -1751028138.9110188,2025-06-27T14:42:18,806848401+02:00 -1751028139.0144868,2025-06-27T14:42:18,910389573+02:00 -1751028139.014526,2025-06-27T14:42:19,014008389+02:00 -1751028139.2205803,2025-06-27T14:42:19,116593390+02:00 -1751028139.3243856,2025-06-27T14:42:19,219910588+02:00 -1751028139.4279382,2025-06-27T14:42:19,323744206+02:00 -1751028139.531544,2025-06-27T14:42:19,427471766+02:00 -1751028139.5317252,2025-06-27T14:42:19,530990025+02:00 -1751028139.7374089,2025-06-27T14:42:19,634064504+02:00 -1751028139.8408935,2025-06-27T14:42:19,736992960+02:00 -1751028139.9447157,2025-06-27T14:42:19,840467750+02:00 -1751028140.0476544,2025-06-27T14:42:19,944205266+02:00 -1751028140.0476856,2025-06-27T14:42:20,047305056+02:00 diff --git a/tests/command_execution/.commandlogging/17510281386106517343193566288/void_input-1-err b/tests/command_execution/.commandlogging/17510281386106517343193566288/void_input-1-err deleted file mode 100644 index cdaae982..00000000 --- a/tests/command_execution/.commandlogging/17510281386106517343193566288/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751028138.0866852,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510281386106517343193566288/void_input-1-out b/tests/command_execution/.commandlogging/17510281386106517343193566288/void_input-1-out deleted file mode 100644 index a78ac350..00000000 --- a/tests/command_execution/.commandlogging/17510281386106517343193566288/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751028138.0866132,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out diff --git a/tests/command_execution/.commandlogging/17510284145298888010555680136/after_comand-0-err b/tests/command_execution/.commandlogging/17510284145298888010555680136/after_comand-0-err deleted file mode 100644 index 775db625..00000000 --- a/tests/command_execution/.commandlogging/17510284145298888010555680136/after_comand-0-err +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751028414.2706537,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-err -hookend -2.0565128326416016 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510284145298888010555680136/after_comand-0-out b/tests/command_execution/.commandlogging/17510284145298888010555680136/after_comand-0-out deleted file mode 100644 index 80483a8d..00000000 --- a/tests/command_execution/.commandlogging/17510284145298888010555680136/after_comand-0-out +++ /dev/null @@ -1,24 +0,0 @@ -hookstart,command,location -1751028414.2700377,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_comand-0-out -1751028414.3720646,2025-06-27T14:46:54,269417555+02:00 -1751028414.4749134,2025-06-27T14:46:54,371887833+02:00 -1751028414.578003,2025-06-27T14:46:54,474739129+02:00 -1751028414.6819012,2025-06-27T14:46:54,577828550+02:00 -1751028414.6819522,2025-06-27T14:46:54,681719359+02:00 -1751028414.8882024,2025-06-27T14:46:54,785232316+02:00 -1751028414.9909122,2025-06-27T14:46:54,888021634+02:00 -1751028415.0940998,2025-06-27T14:46:54,990717595+02:00 -1751028415.1972826,2025-06-27T14:46:55,093919312+02:00 -1751028415.1973302,2025-06-27T14:46:55,197061112+02:00 -1751028415.4023526,2025-06-27T14:46:55,299186595+02:00 -1751028415.5052876,2025-06-27T14:46:55,402152751+02:00 -1751028415.6092272,2025-06-27T14:46:55,505086442+02:00 -1751028415.7124035,2025-06-27T14:46:55,609012373+02:00 -1751028415.7124488,2025-06-27T14:46:55,712124358+02:00 -1751028415.9181612,2025-06-27T14:46:55,815112595+02:00 -1751028416.0206287,2025-06-27T14:46:55,918007930+02:00 -1751028416.123226,2025-06-27T14:46:56,020545591+02:00 -1751028416.2256234,2025-06-27T14:46:56,123044198+02:00 -1751028416.2256663,2025-06-27T14:46:56,225551394+02:00 -hookend -2.0570852756500244 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510284145298888010555680136/after_initial_input b/tests/command_execution/.commandlogging/17510284145298888010555680136/after_initial_input deleted file mode 100644 index 012a6bc2..00000000 --- a/tests/command_execution/.commandlogging/17510284145298888010555680136/after_initial_input +++ /dev/null @@ -1,4 +0,0 @@ -hookstart,command,location -1751028414.2697418,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,after_initial_input -hookend -0.0003952980041503906 \ No newline at end of file diff --git a/tests/command_execution/.commandlogging/17510284145298888010555680136/hook_function_line-0-out b/tests/command_execution/.commandlogging/17510284145298888010555680136/hook_function_line-0-out deleted file mode 100644 index f32086b3..00000000 --- a/tests/command_execution/.commandlogging/17510284145298888010555680136/hook_function_line-0-out +++ /dev/null @@ -1,22 +0,0 @@ -hookstart,command,location -1751028414.2713072,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,hook_function_line-0-out -1751028414.3723876,2025-06-27T14:46:54,269417555+02:00 -1751028414.4751458,2025-06-27T14:46:54,371887833+02:00 -1751028414.578264,2025-06-27T14:46:54,474739129+02:00 -1751028414.6820486,2025-06-27T14:46:54,577828550+02:00 -1751028414.6822817,2025-06-27T14:46:54,681719359+02:00 -1751028414.8884573,2025-06-27T14:46:54,785232316+02:00 -1751028414.99106,2025-06-27T14:46:54,888021634+02:00 -1751028415.0943604,2025-06-27T14:46:54,990717595+02:00 -1751028415.1975763,2025-06-27T14:46:55,093919312+02:00 -1751028415.1976147,2025-06-27T14:46:55,197061112+02:00 -1751028415.402644,2025-06-27T14:46:55,299186595+02:00 -1751028415.5055416,2025-06-27T14:46:55,402152751+02:00 -1751028415.6094806,2025-06-27T14:46:55,505086442+02:00 -1751028415.7125494,2025-06-27T14:46:55,609012373+02:00 -1751028415.7125847,2025-06-27T14:46:55,712124358+02:00 -1751028415.9184003,2025-06-27T14:46:55,815112595+02:00 -1751028416.0208097,2025-06-27T14:46:55,918007930+02:00 -1751028416.1233768,2025-06-27T14:46:56,020545591+02:00 -1751028416.225793,2025-06-27T14:46:56,123044198+02:00 -1751028416.2258246,2025-06-27T14:46:56,225551394+02:00 diff --git a/tests/command_execution/.commandlogging/17510284145298888010555680136/void_input-1-err b/tests/command_execution/.commandlogging/17510284145298888010555680136/void_input-1-err deleted file mode 100644 index a55877b9..00000000 --- a/tests/command_execution/.commandlogging/17510284145298888010555680136/void_input-1-err +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751028414.2723706,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-err diff --git a/tests/command_execution/.commandlogging/17510284145298888010555680136/void_input-1-out b/tests/command_execution/.commandlogging/17510284145298888010555680136/void_input-1-out deleted file mode 100644 index 8b9a7208..00000000 --- a/tests/command_execution/.commandlogging/17510284145298888010555680136/void_input-1-out +++ /dev/null @@ -1,2 +0,0 @@ -hookstart,command,location -1751028414.2726085,/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command/shell_scripts/runForever.sh,void_input-1-out From f315a45461c3d891ab32c29248062f13be46b3ef Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Thu, 3 Jul 2025 19:13:17 +0200 Subject: [PATCH 65/71] removed debugging tools from the branch --- benchkit/shell/command_execution/execute.py | 3 - .../execution_debugging/debugging_hook.py | 72 ---------- .../execute_command/whathappend.html | 61 -------- .../execute_command/whathappend.py | 130 ------------------ 4 files changed, 266 deletions(-) delete mode 100644 benchkit/shell/command_execution/io/hooks/execution_debugging/debugging_hook.py delete mode 100644 tests/command_execution/execute_command/whathappend.html delete mode 100644 tests/command_execution/execute_command/whathappend.py diff --git a/benchkit/shell/command_execution/execute.py b/benchkit/shell/command_execution/execute.py index bfca5893..b06c0b14 100755 --- a/benchkit/shell/command_execution/execute.py +++ b/benchkit/shell/command_execution/execute.py @@ -43,9 +43,6 @@ def execute_command( ordered_output_hooks: Optional[List[OutputHook]] = None, ) -> CommandProcess: - if DEBUG: - ordered_input_hooks, ordered_output_hooks = add_logging_hooks(ordered_input_hooks,ordered_output_hooks,command) - if environment is None: environment = {} diff --git a/benchkit/shell/command_execution/io/hooks/execution_debugging/debugging_hook.py b/benchkit/shell/command_execution/io/hooks/execution_debugging/debugging_hook.py deleted file mode 100644 index d5fedb1e..00000000 --- a/benchkit/shell/command_execution/io/hooks/execution_debugging/debugging_hook.py +++ /dev/null @@ -1,72 +0,0 @@ -import shlex -import time -from pathlib import Path -from typing import List, Optional -from benchkit.shell.command_execution.io.hooks.hook import IOHook, IOWriterHook, OutputHook -from benchkit.shell.command_execution.io.stream import ReadableIOStream, WritableIOStream - - -def debugger_hook(command:str,hooklocation:str) -> IOWriterHook: - def time_accurate() -> float: - return time.time() - - def command_folder() -> str: - return str(int(time_accurate())) + str(abs(hash(command))) - - def tag_bytes_with_time( byt:bytes) -> bytes: - offset = time_accurate() - return f'{offset},'.encode("utf-8") + byt - - - def hook_function(input_stream:ReadableIOStream,output_stream:WritableIOStream) -> None: - start_time = time_accurate() - output_file_path = Path(f"./.commandlogging/{command_folder()}/{hooklocation}") - output_file_path.parent.mkdir(exist_ok=True, parents=True) - with open(output_file_path, "bw+", buffering=0) as output_file: - output_file.write('hookstart,command,location\n'.encode("utf-8")) - output_file.write(f'{time.time()},{command},{hooklocation}\n'.encode("utf-8")) - byt = input_stream.read_line() - while byt: - output_stream.write(byt) - output_file.write(tag_bytes_with_time(byt)) - byt = input_stream.read_line() - output_file.write('hookend\n'.encode("utf-8")) - output_file.write(f'{time_accurate() - start_time}'.encode("utf-8")) - - return IOWriterHook(hook_function,"debugger_hook" + hooklocation) - -def add_logging_hooks(ordered_input_hooks:Optional[List[IOHook]], ordered_output_hooks:Optional[List[OutputHook]],command:List[str]): - new_ordered_input_hooks:List[IOHook] = [] - a = 0 - location = "after_initial_input" - if ordered_input_hooks: - for x in ordered_input_hooks: - new_ordered_input_hooks.append(debugger_hook(shlex.join(command),location + f'-{a}-in')) - new_ordered_input_hooks.append(x) - location = x.name - a += 1 - new_ordered_input_hooks.append(debugger_hook(shlex.join(command),location)) - - a = 0 - err_location = "after_comand" - out_location = "after_comand" - new_ordered_output_hooks:List[OutputHook] = [] - - if ordered_output_hooks: - err_log:Optional[IOWriterHook] = debugger_hook(shlex.join(command),err_location + f"-{a}-err") - out_log:Optional[IOWriterHook] = debugger_hook(shlex.join(command),out_location + f"-{a}-out") - new_ordered_output_hooks.append(OutputHook(out_log,err_log)) - for y in ordered_output_hooks: - err_log = None - out_log = None - if y._std_err_hook: - err_location = y._std_err_hook.name - err_log = debugger_hook(shlex.join(command),err_location + f"-{a}-err") - if y._std_out_hook: - out_location = y._std_out_hook.name - out_log = debugger_hook(shlex.join(command),out_location + f"-{a}-out") - - new_ordered_output_hooks.append(y) - new_ordered_output_hooks.append(OutputHook(out_log,err_log)) - a += 1 - return (new_ordered_input_hooks, new_ordered_output_hooks) diff --git a/tests/command_execution/execute_command/whathappend.html b/tests/command_execution/execute_command/whathappend.html deleted file mode 100644 index 0451778c..00000000 --- a/tests/command_execution/execute_command/whathappend.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - Bokeh Plot - - - - - -
- - - - - \ No newline at end of file diff --git a/tests/command_execution/execute_command/whathappend.py b/tests/command_execution/execute_command/whathappend.py deleted file mode 100644 index 7b046a81..00000000 --- a/tests/command_execution/execute_command/whathappend.py +++ /dev/null @@ -1,130 +0,0 @@ -import datetime -from math import inf -import time -from bokeh.plotting import figure, show -import csv - -import numpy as np - -from bokeh.layouts import column -from bokeh.models import ColumnDataSource, RangeTool -from bokeh.plotting import figure, show -from bokeh.models import HoverTool - -demodict = { - "start_time":0, - "duration":8, - "command_name":"wafel", - "events":[(14,"wafel_output")] -} - - -import glob -print(glob.glob("./.commandlogging/*")) -l = sorted(glob.glob("./.commandlogging/*")) -latest = l[-1] -objects = [] -for x in glob.glob(latest+'/*'): - with open(x) as f: - header = f.readline() - header_values = f.readline() - obj = next(csv.DictReader([header,header_values])) - events = [] - data_line = f.readline().strip() - while data_line != "hookend" and data_line: - field = data_line.split(',') - events.append(field) - data_line = f.readline().strip() - obj["events"] = events - dur = f.readline() - if dur: - obj["duration"] = float(dur.strip()) * 1000 - else: - obj["duration"] = float(200000) * 1000 - - objects.append(obj) - -minimum = inf -maximum = -inf -for x in objects: - if float(x["hookstart"]) < minimum: - minimum = float(x["hookstart"]) - -for x in objects: - new_events = [] - for event in x["events"]: - new_events.append((datetime.datetime.fromtimestamp(float(event[0])),event[1],event[2])) - x["events"] = new_events - x["hookstart"] = datetime.datetime.fromtimestamp(float(x["hookstart"])) -objects = sorted(objects,key=lambda x: x["hookstart"]) - -_tools_to_show = 'box_zoom,pan,save,hover,resize,reset,tap,wheel_zoom' - -p = figure(height=300, width=800, tools="xpan,xwheel_zoom,reset", - x_axis_type="datetime", x_axis_location="above", window_axis="x", - background_fill_color="#efefef",) - -select = figure(title="Drag the middle and edges of the selection box to change the range above", - height=130, width=800, - x_axis_type="datetime", y_axis_type=None, - tools="", toolbar_location=None, background_fill_color="#efefef") -select.x_range.range_padding = 0 -select.x_range.bounds = "auto" - -range_tool = RangeTool(x_range=p.x_range, start_gesture="pan") -range_tool.overlay.fill_color = "navy" -range_tool.overlay.fill_alpha = 0.2 - - -for idx, obj in enumerate(objects): - s = ColumnDataSource( - data= dict( - x=[obj["hookstart"]], - y=[idx], - location=[obj["location"]], - a=["1"] - ) - ) - print([float(obj["duration"])]) - bl = p.block(source=s, width=float(obj["duration"]), height=1,fill_alpha=0.5) - - - select.block(x=obj["hookstart"], y=idx, width=float(obj["duration"]), height=1, - fill_alpha=0.5, - ) - TOOLTIPS = [ - ("location", "@location"), - ("a","@a") - ] - bl_hover = HoverTool(renderers=[bl], - tooltips=TOOLTIPS) - p.add_tools(bl_hover) - events = [] - if obj["events"]: - for a in obj["events"]: - source = ColumnDataSource(data=dict( - x=[a[0]], - y=[idx+0.5], - desc=[a[1] + a[2]], - )) - gr = p.scatter(source=source, - size=10, color="red", alpha=0.5) - TOOLTIPS = [ - ("data", "@desc"), - ] - - g1_hover = HoverTool(renderers=[gr], - tooltips=TOOLTIPS) - p.add_tools(g1_hover) - - - events.append(a[0]) - select.scatter(events, idx+0.5, - size=4, color="olive", alpha=0.5) - - -select.ygrid.grid_line_color = None -select.add_tools(range_tool) - - -show(column(p, select)) \ No newline at end of file From 904d22f04628c6620cf544dccf752a4a28dc7d65 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Thu, 3 Jul 2025 19:14:11 +0200 Subject: [PATCH 66/71] removed useless file --- tests/command_execution/a | 144 -------------------------------------- 1 file changed, 144 deletions(-) delete mode 100644 tests/command_execution/a diff --git a/tests/command_execution/a b/tests/command_execution/a deleted file mode 100644 index 3a701784..00000000 --- a/tests/command_execution/a +++ /dev/null @@ -1,144 +0,0 @@ -/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/execute_command -24 -23 -[popenfile(path='/run/user/1000/pipewire-0.lock', fd=19, position=0, mode='r', flags=557056), popenfile(path='/run/user/1000/pipewire-0-manager.lock', fd=21, position=0, mode='r', flags=557056)] -[] -[] -[] -[] -[] -[popenfile(path='/home/aaronb/.xsession-errors', fd=1, position=162037, mode='a', flags=33793), popenfile(path='/home/aaronb/.xsession-errors', fd=2, position=162037, mode='a', flags=33793), popenfile(path='/home/aaronb/.cache/ksycoca5_en_r2k4mRSkOYKom1k68zFsTE33mxk=', fd=10, position=0, mode='r', flags=557056)] -[popenfile(path='/home/aaronb/.xsession-errors', fd=1, position=162037, mode='a', flags=33793)] -[] -[] -[] -[] -[] -[popenfile(path='/home/aaronb/.cache/ksycoca5_en_r2k4mRSkOYKom1k68zFsTE33mxk=', fd=27, position=0, mode='r', flags=557056)] -[] -[popenfile(path='/home/aaronb/.cache/ksycoca5_en_r2k4mRSkOYKom1k68zFsTE33mxk=', fd=14, position=0, mode='r', flags=557056), popenfile(path='/usr/share/mime/mime.cache', fd=15, position=0, mode='r', flags=557056), popenfile(path='/home/aaronb/.config/libaccounts-glib/accounts.db', fd=18, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/libaccounts-glib/accounts.db-wal', fd=19, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/libaccounts-glib/accounts.db-shm', fd=20, position=0, mode='r+', flags=688130), popenfile(path='/var/lib/dpkg/status', fd=25, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/packages.microsoft.com_repos_code_dists_stable_main_binary-armhf_Packages', fd=29, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/packages.microsoft.com_repos_code_dists_stable_main_binary-arm64_Packages', fd=30, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/packages.microsoft.com_repos_code_dists_stable_main_binary-amd64_Packages', fd=31, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_multiverse_i18n_Translation-en', fd=32, position=28138, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_multiverse_binary-i386_Packages', fd=33, position=13705, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_multiverse_binary-amd64_Packages', fd=34, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_restricted_i18n_Translation-en', fd=35, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_restricted_binary-i386_Packages', fd=36, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_restricted_binary-amd64_Packages', fd=37, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_universe_i18n_Translation-en', fd=38, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_universe_binary-i386_Packages', fd=39, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_universe_binary-amd64_Packages', fd=40, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_main_i18n_Translation-en', fd=41, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_main_binary-i386_Packages', fd=42, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_main_binary-amd64_Packages', fd=43, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_universe_i18n_Translation-en', fd=44, position=59865, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_universe_binary-i386_Packages', fd=45, position=62206, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_universe_binary-amd64_Packages', fd=46, position=90072, mode='r', flags=557056), popenfile(path='/proc/2296/mounts', fd=55, position=0, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_main_i18n_Translation-en', fd=60, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_main_binary-i386_Packages', fd=61, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_main_binary-amd64_Packages', fd=62, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_multiverse_i18n_Translation-en', fd=63, position=35036, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_multiverse_binary-i386_Packages', fd=64, position=16900, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_multiverse_binary-amd64_Packages', fd=65, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_restricted_i18n_Translation-en', fd=66, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_restricted_binary-i386_Packages', fd=67, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_restricted_binary-amd64_Packages', fd=68, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_universe_i18n_Translation-en', fd=69, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_universe_binary-i386_Packages', fd=70, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_universe_binary-amd64_Packages', fd=71, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_main_i18n_Translation-en', fd=72, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_main_binary-i386_Packages', fd=73, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_main_binary-amd64_Packages', fd=74, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_multiverse_i18n_Translation-en', fd=75, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_multiverse_binary-i386_Packages', fd=76, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_multiverse_binary-amd64_Packages', fd=77, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_restricted_i18n_Translation-en', fd=78, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_restricted_binary-i386_Packages', fd=79, position=78519, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_restricted_binary-amd64_Packages', fd=80, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_universe_i18n_Translation-en', fd=81, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_universe_binary-i386_Packages', fd=82, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_universe_binary-amd64_Packages', fd=83, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_main_i18n_Translation-en', fd=84, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_main_binary-i386_Packages', fd=85, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_main_binary-amd64_Packages', fd=86, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_graphics-drivers_ppa_ubuntu_dists_noble_main_i18n_Translation-en', fd=87, position=82241, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_graphics-drivers_ppa_ubuntu_dists_noble_main_binary-i386_Packages', fd=88, position=74603, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_graphics-drivers_ppa_ubuntu_dists_noble_main_binary-amd64_Packages', fd=89, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages', fd=90, position=5506, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/download.docker.com_linux_ubuntu_dists_noble_stable_binary-amd64_Packages', fd=91, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_deadsnakes_ppa_ubuntu_dists_noble_main_i18n_Translation-en', fd=92, position=54027, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_deadsnakes_ppa_ubuntu_dists_noble_main_binary-i386_Packages', fd=93, position=49236, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_deadsnakes_ppa_ubuntu_dists_noble_main_binary-amd64_Packages', fd=94, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/dpkg/status', fd=95, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/packages.microsoft.com_repos_code_dists_stable_main_binary-armhf_Packages', fd=96, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/packages.microsoft.com_repos_code_dists_stable_main_binary-arm64_Packages', fd=97, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/packages.microsoft.com_repos_code_dists_stable_main_binary-amd64_Packages', fd=98, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_multiverse_i18n_Translation-en', fd=99, position=28138, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_multiverse_binary-i386_Packages', fd=100, position=13705, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_multiverse_binary-amd64_Packages', fd=101, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_restricted_i18n_Translation-en', fd=102, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_restricted_binary-i386_Packages', fd=103, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_restricted_binary-amd64_Packages', fd=104, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_universe_i18n_Translation-en', fd=105, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_universe_binary-i386_Packages', fd=106, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_universe_binary-amd64_Packages', fd=107, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_main_i18n_Translation-en', fd=108, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_main_binary-i386_Packages', fd=109, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_noble-security_main_binary-amd64_Packages', fd=110, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_universe_i18n_Translation-en', fd=111, position=59865, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_universe_binary-i386_Packages', fd=112, position=62206, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_universe_binary-amd64_Packages', fd=113, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_main_i18n_Translation-en', fd=114, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_main_binary-i386_Packages', fd=115, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-backports_main_binary-amd64_Packages', fd=116, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_multiverse_i18n_Translation-en', fd=117, position=35036, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_multiverse_binary-i386_Packages', fd=118, position=16900, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_multiverse_binary-amd64_Packages', fd=119, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_restricted_i18n_Translation-en', fd=120, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_restricted_binary-i386_Packages', fd=121, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_restricted_binary-amd64_Packages', fd=122, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_universe_i18n_Translation-en', fd=123, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_universe_binary-i386_Packages', fd=124, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_universe_binary-amd64_Packages', fd=125, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_main_i18n_Translation-en', fd=126, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_main_binary-i386_Packages', fd=127, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble-updates_main_binary-amd64_Packages', fd=128, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_multiverse_i18n_Translation-en', fd=129, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_multiverse_binary-i386_Packages', fd=130, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_multiverse_binary-amd64_Packages', fd=131, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_restricted_i18n_Translation-en', fd=132, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_restricted_binary-i386_Packages', fd=133, position=78519, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_restricted_binary-amd64_Packages', fd=134, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_universe_i18n_Translation-en', fd=135, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_universe_binary-i386_Packages', fd=136, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_universe_binary-amd64_Packages', fd=137, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_main_i18n_Translation-en', fd=138, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_main_binary-i386_Packages', fd=139, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_main_binary-amd64_Packages', fd=140, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_graphics-drivers_ppa_ubuntu_dists_noble_main_i18n_Translation-en', fd=141, position=82241, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_graphics-drivers_ppa_ubuntu_dists_noble_main_binary-i386_Packages', fd=142, position=74603, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_graphics-drivers_ppa_ubuntu_dists_noble_main_binary-amd64_Packages', fd=143, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages', fd=144, position=5506, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/download.docker.com_linux_ubuntu_dists_noble_stable_binary-amd64_Packages', fd=145, position=90072, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_deadsnakes_ppa_ubuntu_dists_noble_main_i18n_Translation-en', fd=146, position=54027, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_deadsnakes_ppa_ubuntu_dists_noble_main_binary-i386_Packages', fd=147, position=49236, mode='r', flags=557056), popenfile(path='/var/lib/apt/lists/ppa.launchpadcontent.net_deadsnakes_ppa_ubuntu_dists_noble_main_binary-amd64_Packages', fd=148, position=90072, mode='r', flags=557056)] -[] -[] -[] -[popenfile(path='/home/aaronb/.cache/ksycoca5_en_r2k4mRSkOYKom1k68zFsTE33mxk=', fd=19, position=0, mode='r', flags=557056), popenfile(path='/usr/share/mime/mime.cache', fd=20, position=0, mode='r', flags=557056), popenfile(path='/home/aaronb/.local/share/kactivitymanagerd/resources/database', fd=26, position=0, mode='r', flags=688128), popenfile(path='/proc/2348/mounts', fd=31, position=0, mode='r', flags=557056), popenfile(path='/home/aaronb/.cache/bookmarksrunner/KRunner-Chrome-Favicons-Default.sqlite', fd=37, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.cache/ksycoca5_en_r2k4mRSkOYKom1k68zFsTE33mxk=', fd=56, position=0, mode='r', flags=557056), popenfile(path='/home/aaronb/.local/share/kactivitymanagerd/resources/database-wal', fd=59, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.local/share/kactivitymanagerd/resources/database-shm', fd=60, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.cache/ksycoca5_en_r2k4mRSkOYKom1k68zFsTE33mxk=', fd=79, position=0, mode='r', flags=557056)] -[popenfile(path='/home/aaronb/.local/share/kactivitymanagerd/resources/database', fd=15, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.local/share/kactivitymanagerd/resources/database-wal', fd=16, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.local/share/kactivitymanagerd/resources/database-shm', fd=17, position=0, mode='r+', flags=688130)] -[] -[] -[] -[] -[] -[] -[] -[] -[] -[] -[popenfile(path='/proc/2670/mounts', fd=16, position=0, mode='r', flags=557056), popenfile(path='/home/aaronb/.cache/ksycoca5_en_r2k4mRSkOYKom1k68zFsTE33mxk=', fd=21, position=0, mode='r', flags=557056), popenfile(path='/usr/share/mime/mime.cache', fd=26, position=0, mode='r', flags=557056)] -[] -[] -[] -[popenfile(path='/usr/share/code/icudtl.dat', fd=3, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=4, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=54, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=55, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/locales/en-US.pak', fd=56, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/resources.pak', fd=57, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/Code/Local Storage/leveldb/LOG', fd=65, position=259, mode='w', flags=32769), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=66, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/Code/Local Storage/leveldb/MANIFEST-000001', fd=72, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/Local Storage/leveldb/LOCK', fd=73, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/Service Worker/Database/LOG', fd=75, position=263, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/Code/Service Worker/Database/LOCK', fd=76, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/Service Worker/Database/MANIFEST-000001', fd=77, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/Dictionaries/en-US-10-1.bdic', fd=78, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/Code/Service Worker/Database/000003.log', fd=79, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/Local Storage/leveldb/000003.log', fd=80, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/main.log', fd=82, position=190, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/DIPS', fd=89, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/DIPS-wal', fd=90, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/DIPS-shm', fd=91, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/GPUCache/index', fd=94, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnGraphiteCache/index', fd=96, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnWebGPUCache/data_3', fd=97, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnWebGPUCache/data_2', fd=98, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/GPUCache/data_0', fd=99, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/GPUCache/data_1', fd=100, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/GPUCache/data_2', fd=101, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/GPUCache/data_3', fd=102, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnWebGPUCache/index', fd=103, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnWebGPUCache/data_0', fd=104, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnWebGPUCache/data_1', fd=105, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnGraphiteCache/data_0', fd=106, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnGraphiteCache/data_1', fd=107, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnGraphiteCache/data_2', fd=108, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/DawnGraphiteCache/data_3', fd=109, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/Code/SharedStorage', fd=112, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/User/globalStorage/state.vscdb', fd=114, position=249856, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/User/workspaceStorage/f8e525ea3594ace2283e0c4ac2e7111f/state.vscdb', fd=116, position=114688, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/SharedStorage-wal', fd=117, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/renderer.log', fd=119, position=1380, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/views.log', fd=122, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.pki/nssdb/cert9.db', fd=140, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.pki/nssdb/key4.db', fd=142, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/terminal.log', fd=146, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/network.log', fd=147, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/network-shared.log', fd=148, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/userDataSync.log', fd=149, position=162, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/sharedprocess.log', fd=150, position=128, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/telemetry.log', fd=151, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/remoteTunnelService.log', fd=152, position=55, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/notebook.rendering.log', fd=153, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/editSessions.log', fd=154, position=131, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/output_20250627T140927/tasks.log', fd=155, position=0, mode='a', flags=33793)] -[popenfile(path='/usr/share/code/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=32768)] -[popenfile(path='/usr/share/code/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=32768)] -[popenfile(path='/usr/share/code/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=32768)] -[] -[popenfile(path='/usr/share/code/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/sys/devices/virtual/tty/tty0/active', fd=16, position=5, mode='r', flags=557056)] -[popenfile(path='/usr/share/code/icudtl.dat', fd=4, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/Code/Shared Dictionary/db', fd=16, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/Trust Tokens', fd=17, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/Code/Cookies', fd=24, position=0, mode='r+', flags=688130), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/usr/share/code/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=16, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/Code/Dictionaries/en-US-10-1.bdic', fd=19, position=0, mode='r', flags=32768), popenfile(path='/proc/3006/statm', fd=20, position=39, mode='r', flags=32768), popenfile(path='/proc/3006/status', fd=21, position=1562, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Regular.ttf', fd=23, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Italic.ttf', fd=29, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/ubuntu/Ubuntu[wdth,wght].ttf', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=37, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc', fd=38, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Bold.ttf', fd=39, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf', fd=41, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=51, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=52, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/ubuntu/UbuntuMono[wght].ttf', fd=53, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansSymbols2-Regular.ttf', fd=54, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Bold.ttf', fd=56, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMath-Regular.ttf', fd=57, position=0, mode='r', flags=32768)] -[popenfile(path='/usr/share/code/icudtl.dat', fd=4, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=557056), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/exthost.log', fd=41, position=6921, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/extHostTelemetry.log', fd=42, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python.log', fd=44, position=13760, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.json-language-features/JSON Language Server.log', fd=48, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.debugpy/Python Debugger.log', fd=52, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.mypy-type-checker/Mypy Type Checker.log', fd=53, position=58206, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.pylint/Pylint.log', fd=55, position=311400, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github-authentication/GitHub Authentication.log', fd=57, position=2271, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python Locator.log', fd=58, position=4995, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/1-Jupyter.log', fd=62, position=384, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/2-Jupyter Server Console.log', fd=64, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.git/Git.log', fd=66, position=61439, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github/GitHub.log', fd=69, position=47, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python Language Server.log', fd=89, position=6799, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/usr/share/code/icudtl.dat', fd=4, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/usr/share/code/icudtl.dat', fd=4, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/exthost.log', fd=41, position=6921, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/extHostTelemetry.log', fd=42, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/usr/share/code/icudtl.dat', fd=4, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/locales/en-US.pak', fd=9, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/resources.pak', fd=10, position=0, mode='r', flags=557056), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/usr/share/code/icudtl.dat', fd=4, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=12, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/exthost.log', fd=41, position=6921, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/extHostTelemetry.log', fd=42, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python.log', fd=44, position=13760, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github-authentication/GitHub Authentication.log', fd=57, position=2271, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python Locator.log', fd=58, position=4995, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/1-Jupyter.log', fd=62, position=384, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/2-Jupyter Server Console.log', fd=64, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/usr/share/code/icudtl.dat', fd=4, position=0, mode='r', flags=557056), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=12, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/exthost.log', fd=41, position=6921, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/extHostTelemetry.log', fd=42, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python.log', fd=44, position=13760, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.json-language-features/JSON Language Server.log', fd=48, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.debugpy/Python Debugger.log', fd=52, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.mypy-type-checker/Mypy Type Checker.log', fd=53, position=58206, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.pylint/Pylint.log', fd=55, position=311400, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github-authentication/GitHub Authentication.log', fd=57, position=2271, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python Locator.log', fd=58, position=4995, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/1-Jupyter.log', fd=62, position=384, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/2-Jupyter Server Console.log', fd=64, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.git/Git.log', fd=66, position=61439, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github/GitHub.log', fd=69, position=47, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/exthost.log', fd=41, position=6921, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/extHostTelemetry.log', fd=42, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python.log', fd=44, position=13760, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.json-language-features/JSON Language Server.log', fd=48, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.debugpy/Python Debugger.log', fd=52, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.mypy-type-checker/Mypy Type Checker.log', fd=53, position=58206, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.pylint/Pylint.log', fd=55, position=311400, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github-authentication/GitHub Authentication.log', fd=57, position=2271, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python Locator.log', fd=58, position=4995, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/1-Jupyter.log', fd=62, position=384, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/2-Jupyter Server Console.log', fd=64, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.git/Git.log', fd=66, position=61439, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github/GitHub.log', fd=69, position=47, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/exthost.log', fd=41, position=6921, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/extHostTelemetry.log', fd=42, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python.log', fd=44, position=13760, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.json-language-features/JSON Language Server.log', fd=48, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.debugpy/Python Debugger.log', fd=52, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.mypy-type-checker/Mypy Type Checker.log', fd=53, position=58206, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.pylint/Pylint.log', fd=55, position=311400, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github-authentication/GitHub Authentication.log', fd=57, position=2271, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/ms-python.python/Python Locator.log', fd=58, position=4995, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/1-Jupyter.log', fd=62, position=384, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/output_logging_20250627T140927/2-Jupyter Server Console.log', fd=64, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.git/Git.log', fd=66, position=61439, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/window1/exthost/vscode.github/GitHub.log', fd=69, position=47, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.vscode/extensions/ms-python.python-2025.8.0-linux-x64/python_files/deactivate/bash/deactivate', fd=254, position=1367, mode='r', flags=557056)] -[popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=3, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=16, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=17, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=18, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=19, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/segmentation_platform/ukm_db', fd=53, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/ShaderCache/index', fd=60, position=0, mode='r+', flags=32770), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=62, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/segmentation_platform/ukm_db-wal', fd=63, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/ShaderCache/data_0', fd=64, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/ShaderCache/data_1', fd=65, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/ShaderCache/data_2', fd=66, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/ShaderCache/data_3', fd=68, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Service Worker/Database/LOG', fd=70, position=300, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Site Characteristics Database/LOG', fd=71, position=312, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Site Characteristics Database/LOCK', fd=72, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Favicons', fd=73, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Sync Data/LevelDB/LOG', fd=75, position=288, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Sync Data/LevelDB/LOCK', fd=76, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_www.youtube.com_0.indexeddb.leveldb/MANIFEST-000001', fd=77, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/History', fd=78, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Sync Data/LevelDB/MANIFEST-000001', fd=79, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/ServerCertificate', fd=81, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Service Worker/Database/LOCK', fd=82, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Service Worker/Database/MANIFEST-000001', fd=83, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Site Characteristics Database/MANIFEST-000001', fd=85, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Affiliation Database', fd=87, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Sync Data/LevelDB/000003.log', fd=88, position=238861, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Service Worker/Database/000004.log', fd=89, position=163576, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Site Characteristics Database/000003.log', fd=90, position=74779, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Service Worker/Database/000005.ldb', fd=91, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Extension Scripts/LOG', fd=93, position=288, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Extension Scripts/LOCK', fd=94, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/LOCK', fd=95, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=96, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Extension Scripts/MANIFEST-000001', fd=97, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Extension Scripts/000003.log', fd=98, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlCsdDownloadAllowlist.store.32_13389176054397517', fd=103, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlSubresourceFilter.store.4_13395498213150205', fd=105, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Login Data', fd=106, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/ChromeExtMalware.store.32_13395482096607327', fd=107, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=111, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlCsdAllowlist.store.32_13395482096613839', fd=112, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlCsdAllowlist.store.4_13395482096613826', fd=113, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlSuspiciousSite.store.4_13395494627034060', fd=114, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=116, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlHighConfidenceAllowlist.store.32_13395492835981034', fd=117, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Top Sites', fd=118, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Extension State/000112.log', fd=119, position=1639534, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_app.slack.com_0.indexeddb.leveldb/LOG', fd=120, position=353, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/GPUCache/index', fd=121, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/History-journal', fd=124, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnGraphiteCache/data_1', fd=125, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_www.youtube.com_0.indexeddb.leveldb/000638.log', fd=126, position=1339340, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/File System/Origins/LOG', fd=127, position=292, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/GPUCache/data_0', fd=128, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/GPUCache/data_1', fd=129, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/GPUCache/data_2', fd=130, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/GPUCache/data_3', fd=131, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnWebGPUCache/index', fd=132, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlSoceng.store.4_13395500852294919', fd=133, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnWebGPUCache/data_0', fd=134, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnWebGPUCache/data_1', fd=135, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnWebGPUCache/data_2', fd=136, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnWebGPUCache/data_3', fd=137, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnGraphiteCache/index', fd=138, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnGraphiteCache/data_0', fd=139, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/metadata/LOG', fd=140, position=302, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnGraphiteCache/data_2', fd=142, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/DawnGraphiteCache/data_3', fd=143, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlMalware.store.4_13395500852452371', fd=144, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/WebStorage/QuotaManager', fd=146, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/WebStorage/QuotaManager-journal', fd=147, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Platform Notifications/LOG', fd=148, position=298, mode='w', flags=32769), popenfile(path='/home/aaronb/.pki/nssdb/cert9.db', fd=150, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Account Web Data', fd=151, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Login Data For Account', fd=154, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/metadata/LOCK', fd=157, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/metadata/MANIFEST-000001', fd=158, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/metadata/000003.log', fd=159, position=2840, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/LOG', fd=160, position=285, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/LOCK', fd=161, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/MANIFEST-000001', fd=162, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/000011.log', fd=163, position=412476, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/shared_proto_db/000013.ldb', fd=164, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/File System/Origins/LOCK', fd=170, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Platform Notifications/LOCK', fd=174, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Extension State/LOG', fd=176, position=286, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Web Data', fd=179, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Platform Notifications/MANIFEST-000001', fd=180, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Extension State/LOCK', fd=181, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Extension State/MANIFEST-000001', fd=182, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Platform Notifications/000003.log', fd=183, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/SharedStorage', fd=184, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/SharedStorage-wal', fd=185, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.pki/nssdb/key4.db', fd=186, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/nngceckbapebfimnlniiiahkandclblb/LOG', fd=187, position=368, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/nngceckbapebfimnlniiiahkandclblb/LOCK', fd=188, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/nngceckbapebfimnlniiiahkandclblb/MANIFEST-000001', fd=189, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/nngceckbapebfimnlniiiahkandclblb/000004.log', fd=190, position=3820521, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/nngceckbapebfimnlniiiahkandclblb/000005.ldb', fd=191, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/GrShaderCache/index', fd=192, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GrShaderCache/data_0', fd=196, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GraphiteDawnCache/index', fd=197, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GrShaderCache/data_1', fd=198, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GrShaderCache/data_2', fd=199, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GrShaderCache/data_3', fd=200, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Session Storage/LOCK', fd=202, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GraphiteDawnCache/data_0', fd=203, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GraphiteDawnCache/data_2', fd=204, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GraphiteDawnCache/data_1', fd=205, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/GraphiteDawnCache/data_3', fd=207, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Sessions/Tabs_13395500706598450', fd=208, position=999813, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Conversions', fd=210, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/GCM Store/LOG', fd=212, position=272, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_app.slack.com_0.indexeddb.leveldb/LOCK', fd=216, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_app.slack.com_0.indexeddb.leveldb/MANIFEST-000001', fd=217, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_app.slack.com_0.indexeddb.leveldb/000064.log', fd=218, position=144053, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Web Data-journal', fd=219, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/GCM Store/LOCK', fd=220, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/GCM Store/MANIFEST-000001', fd=221, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/GCM Store/000003.log', fd=222, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/heavy_ad_intervention_opt_out.db', fd=223, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Shortcuts', fd=224, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Network Action Predictor', fd=225, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/DIPS', fd=227, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/DIPS-wal', fd=228, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/AggregationService', fd=229, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/first_party_sets.db-journal', fd=230, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Managed Extension Settings/nngceckbapebfimnlniiiahkandclblb/LOG', fd=231, position=372, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/ZxcvbnData/3/ranked_dicts', fd=232, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/26/E6DC4029A1E4B4C1/28EB64391A8057C3/model.tflite', fd=233, position=7112, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/GCM Store/Encryption/LOG', fd=234, position=294, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/GCM Store/Encryption/LOCK', fd=235, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/GCM Store/Encryption/MANIFEST-000001', fd=236, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/GCM Store/Encryption/000003.log', fd=237, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/BrowsingTopicsSiteData', fd=238, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/first_party_sets.db', fd=239, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/24/E6DC4029A1E4B4C1/CA3E3A76AD9D5A66/model.tflite', fd=240, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=241, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Network Action Predictor-journal', fd=243, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/2/E6DC4029A1E4B4C1/B1C713E0BEE05218/model.tflite', fd=244, position=392048, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Managed Extension Settings/nngceckbapebfimnlniiiahkandclblb/LOCK', fd=245, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Managed Extension Settings/nngceckbapebfimnlniiiahkandclblb/MANIFEST-000001', fd=249, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Managed Extension Settings/nngceckbapebfimnlniiiahkandclblb/000003.log', fd=250, position=1938, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/File System/Origins/MANIFEST-000001', fd=254, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlUws.store.4_13395500852454770', fd=255, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_app.slack.com_0.indexeddb.leveldb/000066.ldb', fd=257, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlBilling.store.4_13395500852455893', fd=260, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Sessions/Session_13395501745518928', fd=261, position=455134, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Safe Browsing/UrlMalBin.store.4_13395500852456435', fd=263, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Favicons-journal', fd=274, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Login Data For Account-journal', fd=276, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/hyphen-data/120.0.6050.0/hyph-en-us.hyb', fd=289, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Conversions-journal', fd=308, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/PrivateAggregation', fd=310, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/AggregationService-journal', fd=311, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/PrivateAggregation-journal', fd=325, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=349, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/lokpenepehfdekijkebhpnpcjjpngpnd/LOG', fd=355, position=368, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/File System/Origins/000003.log', fd=357, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Account Web Data-journal', fd=382, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/lokpenepehfdekijkebhpnpcjjpngpnd/LOCK', fd=384, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/lokpenepehfdekijkebhpnpcjjpngpnd/MANIFEST-000001', fd=390, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_www.youtube.com_0.indexeddb.leveldb/LOG', fd=391, position=358, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Extension Settings/lokpenepehfdekijkebhpnpcjjpngpnd/000003.log', fd=392, position=0, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_www.youtube.com_0.indexeddb.leveldb/LOCK', fd=393, position=0, mode='r+', flags=32770), popenfile(path='/home/aaronb/.config/google-chrome/Default/MediaDeviceSalts', fd=394, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/IndexedDB/https_www.youtube.com_0.indexeddb.leveldb/000640.ldb', fd=395, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Shortcuts-journal', fd=441, position=0, mode='r+', flags=688130)] -[] -[] -[] -[] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/sys/devices/virtual/tty/tty0/active', fd=19, position=5, mode='r', flags=557056)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=4, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=11, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Trust Tokens', fd=18, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Cookies', fd=19, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Shared Dictionary/db', fd=20, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Reporting and NEL', fd=21, position=0, mode='r+', flags=688130), popenfile(path='/home/aaronb/.config/google-chrome/Default/Safe Browsing Cookies', fd=23, position=0, mode='r+', flags=688130), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Trust Tokens-journal', fd=404, position=0, mode='r+', flags=688130)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/LOG', fd=20, position=1960, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/MANIFEST-000001', fd=21, position=415164, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/003647.ldb', fd=23, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/003645.ldb', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/000005.ldb', fd=25, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Session Storage/LOG', fd=27, position=437, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Session Storage/MANIFEST-000001', fd=28, position=32468, mode='a', flags=33793), popenfile(path='/home/aaronb/.config/google-chrome/Default/Session Storage/000630.ldb', fd=29, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Session Storage/000005.ldb', fd=30, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Session Storage/000627.ldb', fd=31, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Session Storage/000625.ldb', fd=32, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/003646.log', fd=43, position=39884, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Session Storage/000629.log', fd=48, position=3732, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/003640.ldb', fd=75, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/003641.ldb', fd=76, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/003642.ldb', fd=78, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Default/Local Storage/leveldb/003643.ldb', fd=79, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=25, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/proc/7051/statm', fd=29, position=39, mode='r', flags=32768), popenfile(path='/proc/7051/status', fd=30, position=1562, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=37, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=29, position=0, mode='r', flags=32768), popenfile(path='/proc/7148/statm', fd=30, position=39, mode='r', flags=32768), popenfile(path='/proc/7148/status', fd=31, position=1562, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=38, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf', fd=20, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=22, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7184/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7184/status', fd=29, position=1564, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansSymbols2-Regular.ttf', fd=30, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=45, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf', fd=20, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7210/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7210/status', fd=29, position=1567, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=32, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=40, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=41, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Regular.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=43, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=49, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Italic.ttf', fd=71, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=74, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/hyphen-data/120.0.6050.0/hyph-en-us.hyb', fd=75, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Bold.ttf', fd=31, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=32, position=0, mode='r', flags=32768), popenfile(path='/proc/7215/statm', fd=33, position=39, mode='r', flags=32768), popenfile(path='/proc/7215/status', fd=34, position=1567, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf', fd=39, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-BoldItalic.ttf', fd=40, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-BoldItalic.ttf', fd=41, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=43, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=47, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Bold.ttf', fd=48, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf', fd=49, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=53, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Italic.ttf', fd=54, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Regular.ttf', fd=55, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=56, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansArabic-Regular.ttf', fd=59, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/hyphen-data/120.0.6050.0/hyph-en-us.hyb', fd=61, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7254/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7254/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7301/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7301/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=44, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7310/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7310/status', fd=29, position=1569, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=39, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=48, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/ubuntu/Ubuntu[wdth,wght].ttf', fd=50, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf', fd=52, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=53, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf', fd=55, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Bold.ttf', fd=56, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf', fd=57, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Regular.ttf', fd=61, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=67, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7320/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7320/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=40, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=42, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=43, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=44, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=45, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/proc/7328/statm', fd=26, position=39, mode='r', flags=32768), popenfile(path='/proc/7328/status', fd=27, position=1567, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=29, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=39, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=44, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Regular.ttf', fd=45, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=46, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf', fd=47, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=51, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=52, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=66, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=67, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=68, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=70, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=4, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=11, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=20, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=29, position=0, mode='r', flags=32768), popenfile(path='/proc/7409/statm', fd=30, position=39, mode='r', flags=32768), popenfile(path='/proc/7409/status', fd=31, position=1568, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=39, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=40, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansSymbols2-Regular.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf', fd=43, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=44, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf', fd=51, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Regular.ttf', fd=57, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7435/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7435/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7536/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7536/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7550/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7550/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=20, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7575/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7575/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=36, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=39, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=30, position=0, mode='r', flags=32768), popenfile(path='/proc/7620/statm', fd=32, position=39, mode='r', flags=32768), popenfile(path='/proc/7620/status', fd=33, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=36, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=32, position=0, mode='r', flags=32768), popenfile(path='/proc/7628/statm', fd=33, position=39, mode='r', flags=32768), popenfile(path='/proc/7628/status', fd=34, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/7636/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7636/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=22, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=23, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=25, position=0, mode='r', flags=32768), popenfile(path='/proc/7768/statm', fd=27, position=39, mode='r', flags=32768), popenfile(path='/proc/7768/status', fd=28, position=1565, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=35, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=43, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=30, position=0, mode='r', flags=32768), popenfile(path='/proc/7784/statm', fd=32, position=39, mode='r', flags=32768), popenfile(path='/proc/7784/status', fd=33, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=36, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=25, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/proc/7792/statm', fd=33, position=39, mode='r', flags=32768), popenfile(path='/proc/7792/status', fd=34, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=36, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=28, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/proc/7797/statm', fd=30, position=39, mode='r', flags=32768), popenfile(path='/proc/7797/status', fd=31, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=36, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/proc/7802/statm', fd=25, position=39, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/proc/7802/status', fd=27, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=30, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=25, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/proc/7816/statm', fd=29, position=39, mode='r', flags=32768), popenfile(path='/proc/7816/status', fd=30, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=33, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/proc/7829/statm', fd=29, position=39, mode='r', flags=32768), popenfile(path='/proc/7829/status', fd=30, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=33, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=35, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/proc/7834/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/7834/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=30, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=33, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=31, position=0, mode='r', flags=32768), popenfile(path='/proc/7848/statm', fd=32, position=39, mode='r', flags=32768), popenfile(path='/proc/7848/status', fd=33, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=31, position=0, mode='r', flags=32768), popenfile(path='/proc/7856/statm', fd=32, position=39, mode='r', flags=32768), popenfile(path='/proc/7856/status', fd=33, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/proc/7861/statm', fd=27, position=39, mode='r', flags=32768), popenfile(path='/proc/7861/status', fd=28, position=1564, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=31, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=39, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Bold.ttf', fd=40, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf', fd=41, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/hyphen-data/120.0.6050.0/hyph-en-us.hyb', fd=43, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=44, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Italic.ttf', fd=45, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=46, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc', fd=47, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=25, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=34, position=0, mode='r', flags=32768), popenfile(path='/proc/7910/statm', fd=35, position=39, mode='r', flags=32768), popenfile(path='/proc/7910/status', fd=36, position=1565, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=41, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf', fd=43, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=44, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=22, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=30, position=0, mode='r', flags=32768), popenfile(path='/proc/7955/statm', fd=31, position=39, mode='r', flags=32768), popenfile(path='/proc/7955/status', fd=32, position=1565, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=48, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=49, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf', fd=50, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/8008/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/8008/status', fd=29, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=31, position=0, mode='r', flags=32768), popenfile(path='/proc/8038/statm', fd=32, position=39, mode='r', flags=32768), popenfile(path='/proc/8038/status', fd=33, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=25, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=35, position=0, mode='r', flags=32768), popenfile(path='/proc/8054/statm', fd=36, position=39, mode='r', flags=32768), popenfile(path='/proc/8054/status', fd=37, position=1566, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=47, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=48, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf', fd=49, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/8105/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/proc/8105/status', fd=30, position=1566, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=36, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=27, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=29, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=31, position=0, mode='r', flags=32768), popenfile(path='/proc/8137/statm', fd=32, position=39, mode='r', flags=32768), popenfile(path='/proc/8137/status', fd=33, position=1567, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=37, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=39, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf', fd=40, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=41, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Italic.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansMono-Regular.ttf', fd=43, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=45, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=46, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=26, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/proc/8148/statm', fd=30, position=39, mode='r', flags=32768), popenfile(path='/proc/8148/status', fd=31, position=1568, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=33, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/8169/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/8169/status', fd=29, position=1568, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=28, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=29, position=0, mode='r', flags=32768), popenfile(path='/proc/8181/statm', fd=30, position=39, mode='r', flags=32768), popenfile(path='/proc/8181/status', fd=31, position=1571, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=40, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=46, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=48, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=49, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf', fd=52, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=54, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Italic.ttf', fd=58, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Bold.ttf', fd=65, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=68, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansArabic-Regular.ttf', fd=71, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=72, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf', fd=73, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=74, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=86, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc', fd=94, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSansSymbols2-Regular.ttf', fd=97, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/proc/8205/statm', fd=20, position=39, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/proc/8205/status', fd=22, position=1568, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=25, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=38, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/9428/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/9428/status', fd=29, position=1567, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=46, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf', fd=47, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=52, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-BoldItalic.ttf', fd=53, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/9484/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/9484/status', fd=29, position=1569, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=50, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=51, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf', fd=52, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=53, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768)] -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=27, position=0, mode='r', flags=32768), popenfile(path='/proc/11295/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/11295/status', fd=29, position=1572, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=31, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf', fd=40, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf', fd=42, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Bold.ttf', fd=46, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf', fd=47, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf', fd=48, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/hyphen-data/120.0.6050.0/hyph-en-us.hyb', fd=49, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf', fd=50, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/truetype/liberation/LiberationMono-Italic.ttf', fd=51, position=0, mode='r', flags=32768), popenfile(path='/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc', fd=55, position=0, mode='r', flags=32768)] -pasalong ended -[popenfile(path='/opt/google/chrome/icudtl.dat', fd=5, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=6, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_100_percent.pak', fd=7, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/chrome_200_percent.pak', fd=8, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/locales/en-US.pak', fd=9, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/resources.pak', fd=10, position=0, mode='r', flags=32768), popenfile(path='/opt/google/chrome/v8_context_snapshot.bin', fd=17, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Dictionaries/en-US-10-1.bdic', fd=21, position=0, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/Subresource Filter/Indexed Rules/36/9.56.0/Ruleset Data', fd=24, position=0, mode='r', flags=32768), popenfile(path='/proc/11342/statm', fd=28, position=39, mode='r', flags=32768), popenfile(path='/proc/11342/status', fd=29, position=1567, mode='r', flags=32768), popenfile(path='/home/aaronb/.config/google-chrome/optimization_guide_model_store/25/E6DC4029A1E4B4C1/CA7EAC039ADDCF25/visual_model_desktop.tflite', fd=31, position=0, mode='r', flags=32768)] -[popenfile(path='/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/a', fd=1, position=158120, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/a', fd=1, position=158120, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/a', fd=1, position=158120, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/a', fd=1, position=158120, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[popenfile(path='/home/aaronb/Documents/benchFork/benchkit/tests/command_execution/a', fd=1, position=158120, mode='w', flags=32769), popenfile(path='/home/aaronb/.config/Code/logs/20250627T140925/ptyhost.log', fd=41, position=0, mode='a', flags=33793), popenfile(path='/usr/share/code/v8_context_snapshot.bin', fd=103, position=0, mode='r', flags=32768)] -[] -[OUT | ls] 2025-06-27T14:48:13,421201559+02:00 -[OUT | ls] 2025-06-27T14:48:13,523824289+02:00 -[OUT | ls] 2025-06-27T14:48:13,627651415+02:00 -[OUT | ls] 2025-06-27T14:48:13,731587549+02:00 -[OUT | ls] 2025-06-27T14:48:13,835412328+02:00 -[OUT | ls] 2025-06-27T14:48:13,939105549+02:00 -[OUT | ls] 2025-06-27T14:48:14,042684232+02:00 -[OUT | ls] 2025-06-27T14:48:14,145958292+02:00 -[OUT | ls] 2025-06-27T14:48:14,249647477+02:00 -[OUT | ls] 2025-06-27T14:48:14,353048039+02:00 -[OUT | ls] 2025-06-27T14:48:14,455692549+02:00 -[OUT | ls] 2025-06-27T14:48:14,558584675+02:00 -[OUT | ls] 2025-06-27T14:48:14,661938135+02:00 -[OUT | ls] 2025-06-27T14:48:14,765297522+02:00 -[OUT | ls] 2025-06-27T14:48:14,868536489+02:00 -[OUT | ls] 2025-06-27T14:48:14,972135761+02:00 -[OUT | ls] 2025-06-27T14:48:15,075469866+02:00 -[OUT | ls] 2025-06-27T14:48:15,179240286+02:00 -[OUT | ls] 2025-06-27T14:48:15,282865577+02:00 -[OUT | ls] 2025-06-27T14:48:15,386501210+02:00 From 0af4552f6e50cf8e334196155c53360c9c0f5627 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Thu, 3 Jul 2025 19:14:53 +0200 Subject: [PATCH 67/71] removed file unasosiated with this branch --- tests/command_execution/requirements.txt | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 tests/command_execution/requirements.txt diff --git a/tests/command_execution/requirements.txt b/tests/command_execution/requirements.txt deleted file mode 100644 index cd19233f..00000000 --- a/tests/command_execution/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -bokeh -psutil \ No newline at end of file From d80a814d7059141a1adf42c95b6114fa75ba0394 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Thu, 3 Jul 2025 19:16:30 +0200 Subject: [PATCH 68/71] remove wrongfull import --- benchkit/shell/command_execution/execute.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/benchkit/shell/command_execution/execute.py b/benchkit/shell/command_execution/execute.py index b06c0b14..94793a70 100755 --- a/benchkit/shell/command_execution/execute.py +++ b/benchkit/shell/command_execution/execute.py @@ -8,8 +8,6 @@ import subprocess from typing import Dict, Iterable, List, Optional -from shell.command_execution.io.hooks.execution_debugging.debugging_hook import add_logging_hooks - from benchkit.shell.command_execution.command_process import CommandProcess from benchkit.shell.command_execution.io.hooks.hook import ( IOHook, From 71d02b34d66918c7d73a13487117b892a989f8d1 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Thu, 3 Jul 2025 19:16:57 +0200 Subject: [PATCH 69/71] remove useless line --- benchkit/shell/command_execution/execute.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/benchkit/shell/command_execution/execute.py b/benchkit/shell/command_execution/execute.py index 94793a70..29026b9a 100755 --- a/benchkit/shell/command_execution/execute.py +++ b/benchkit/shell/command_execution/execute.py @@ -21,9 +21,6 @@ ) from benchkit.shell.command_execution.io.output import popen_get_output - -DEBUG = False - def execute_command( # needed for starting the command command: List[str], From 61061ed76c0368c7d3c18d44c036a756ac4686c4 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Wed, 9 Jul 2025 10:38:14 +0200 Subject: [PATCH 70/71] undo threading --- .gitignore | 1 - .../command_execution/command_process.py | 1 - benchkit/shell/command_execution/execute.py | 17 ++-- .../command_execution/io/hooks/basic_hooks.py | 15 ++-- .../shell/command_execution/io/hooks/hook.py | 87 +++++++++---------- benchkit/shell/command_execution/io/stream.py | 12 +-- .../execute_command/other_tests.py | 9 +- 7 files changed, 61 insertions(+), 81 deletions(-) diff --git a/.gitignore b/.gitignore index 8d3abfe5..c1aa91dc 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,3 @@ venv/ .DS_Store results/ benchkit.egg-info/ -.commandlogging/ \ No newline at end of file diff --git a/benchkit/shell/command_execution/command_process.py b/benchkit/shell/command_execution/command_process.py index 1fa37869..039464a3 100644 --- a/benchkit/shell/command_execution/command_process.py +++ b/benchkit/shell/command_execution/command_process.py @@ -61,7 +61,6 @@ def __wait_func( ) else: queue.put((retcode, None)) - except TimeoutExpired as exc: # TODO: we can add some form of logging here to warn the user if something went wrong subprocess.terminate() diff --git a/benchkit/shell/command_execution/execute.py b/benchkit/shell/command_execution/execute.py index 29026b9a..9084a34c 100755 --- a/benchkit/shell/command_execution/execute.py +++ b/benchkit/shell/command_execution/execute.py @@ -21,6 +21,7 @@ ) from benchkit.shell.command_execution.io.output import popen_get_output + def execute_command( # needed for starting the command command: List[str], @@ -72,8 +73,8 @@ def pasalong(input_stream: ReadableIOStream, _: WritableIOStream) -> None: if std_input is not None: hook = IOWriterHook(pasalong) hook.start_hook_function(std_input) - # if process.stdin is not None: - # process.stdin.close() + if process.stdin is not None: + process.stdin.close() # 3) manipulate teh output stream using the orderd output hooks command_output = popen_get_output(process.stdout, process.stderr) @@ -83,12 +84,12 @@ def pasalong(input_stream: ReadableIOStream, _: WritableIOStream) -> None: command_output = outhook.attatch(command_output) # close all the main thread file descriptors - # if process.stdout is not None: - # process.stdout.close() - # if process.stderr is not None: - # process.stderr.close() - # if process.stdin is not None: - # process.stdin.close() + if process.stdout is not None: + process.stdout.close() + if process.stderr is not None: + process.stderr.close() + if process.stdin is not None: + process.stdin.close() # 4) construct the object we can use to monitor the process return CommandProcess( diff --git a/benchkit/shell/command_execution/io/hooks/basic_hooks.py b/benchkit/shell/command_execution/io/hooks/basic_hooks.py index e31f5d43..2d44c9c6 100644 --- a/benchkit/shell/command_execution/io/hooks/basic_hooks.py +++ b/benchkit/shell/command_execution/io/hooks/basic_hooks.py @@ -4,7 +4,7 @@ from __future__ import annotations # Otherwise Queue comlains about typing from multiprocessing import Queue -from typing import Any, Optional +from typing import Any from pathlib import Path from benchkit.shell.command_execution.io.hooks.hook import ( @@ -23,7 +23,7 @@ def create_voiding_result_hook() -> IOResultHook: def hook_function( - input_object: ReadableIOStream, out: WritableIOStream, result_queue: Queue[Any] + input_object: ReadableIOStream, _: WritableIOStream, result_queue: Queue[Any] ): # we do not write to the out stream thus this is "voiding" outlines: bytes = b"" @@ -65,7 +65,7 @@ def hook_function( -def create_stream_line_logger_hook(formating_string: str, name: Optional[str] = None) -> IOReaderHook: +def create_stream_line_logger_hook(formating_string: str) -> IOReaderHook: def hook_function_line(input_object: ReadableIOStream): byt = input_object.read_line() while byt: @@ -74,7 +74,8 @@ def hook_function_line(input_object: ReadableIOStream): end="", ) byt = input_object.read_line() - return IOReaderHook(hook_function_line,name=name) + + return IOReaderHook(hook_function_line) # TODO: Voiding can be done be done better but this will do for now @@ -87,10 +88,10 @@ def void_input(input_object: ReadableIOStream, _: WritableIOStream): outline = input_object.read(10) -def logger_line_hook(outformat: str, errformat: str,nameout: Optional[str] = None,nameerr: Optional[str] = None): +def logger_line_hook(outformat: str, errformat: str): return OutputHook( - create_stream_line_logger_hook(outformat,nameout), - create_stream_line_logger_hook(errformat,nameerr), + create_stream_line_logger_hook(outformat), + create_stream_line_logger_hook(errformat), ) diff --git a/benchkit/shell/command_execution/io/hooks/hook.py b/benchkit/shell/command_execution/io/hooks/hook.py index db09e769..0e30e5bb 100644 --- a/benchkit/shell/command_execution/io/hooks/hook.py +++ b/benchkit/shell/command_execution/io/hooks/hook.py @@ -4,8 +4,7 @@ from __future__ import annotations # Otherwise Queue comlains about typing from abc import ABC, abstractmethod -from threading import Lock, Thread -from queue import Queue +from multiprocessing import Process, Queue from typing import Any, Callable, Optional from benchkit.shell.command_execution.io.stream import ( @@ -27,22 +26,6 @@ def __init__(self,name:str): def start_hook_function(self, input_stream: ReadableIOStream) -> None: pass - def _start_thread_and_cleanup(self,target,args,name,to_close): - def _wrap(target,args,to_close:list[WritableIOStream]): - target(*args) - for stream in to_close: - stream.end_writing() - - p = Thread( - target=_wrap, - args=(target,args,to_close), - name=name, - ) - - p.start() - - - def get_outgoing_io_stream(self) -> ReadableIOStream: return self._output @@ -58,8 +41,16 @@ def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream], Non super().__init__(name) def start_hook_function(self, input_stream: ReadableIOStream) -> None: - # A thread is spawned to keep the hookfunction running on the stream - self._start_thread_and_cleanup(self.hook_function,(input_stream, self._output),self.name,[self._output]) + # A process is spawned to keep the hookfunction running on the stream + p = Process( + target=self.hook_function, + args=(input_stream, self._output), + name=self.name, + ) + p.start() + + # Close the file descriptor of the main thread, the one from the process will still be alive + self._output.end_writing() class IOReaderHook(IOHook): @@ -83,17 +74,29 @@ def __pas_along_original_stream( def start_hook_function(self, input_stream: ReadableIOStream) -> None: - # A thread is spawned to duplicate the input stream for the reading function - self._start_thread_and_cleanup(self.__pas_along_original_stream,( + # A process is spawned to duplicate the input stream for the reading function + duplication_process = Process( + target=self.__pas_along_original_stream, + args=( input_stream, self._output, self._stream_duplicate, - ),self.name + " pasalong",[self._output,self._stream_duplicate]) + ), + name=self.name + " pasalong", + ) - # A thread is spawned to keep the hookfunction running on the duplicate stream - self._start_thread_and_cleanup(self.hook_function,( - self._stream_duplicate, - ),self.name,[]) + # A process is spawned to keep the hookfunction running on the stream + reader_hook_process = Process( + target=self.hook_function, + args=(self._stream_duplicate,), + name=self.name, + ) + + duplication_process.start() + reader_hook_process.start() + # Close the file descriptor of the main thread, the one from the process will still be alive + self._output.end_writing() + self._stream_duplicate.end_writing() class IOResultHook(IOHook): @@ -109,10 +112,15 @@ def __init__(self, hook_function: Callable[[ReadableIOStream, PipeIOStream, Queu super().__init__(name) def start_hook_function(self, input_stream: ReadableIOStream) -> None: + p = Process( + target=self.hook_function, + args=(input_stream, self._output, self.__queue), + name=self.name, + ) + p.start() - self._start_thread_and_cleanup(self.hook_function, - (input_stream, self._output, self.__queue) - ,self.name,[self._output]) + # Close the file descriptor of the main thread, the one from the process will still be alive + self._output.end_writing() def get_result(self) -> Any: return self.__queue.get() @@ -139,31 +147,18 @@ def attatch(self, output: Output) -> Output: class MergeErrToOut(OutputHook): def __init__(self) -> None: self.std_out = PipeIOStream() - # a lock for the out pipe only if released can we clean it up - self.lock = Lock() - self.lock.acquire() - - self._std_err_hook:IOWriterHook = IOWriterHook(self.__mergehookfunction,name="merge-hook-err") - self._std_out_hook:IOWriterHook = IOWriterHook(self.__mergehookfunction_close,name="merge-hook-out") + self._std_err_hook:IOWriterHook = IOWriterHook(self.__mergehookfunction) + self._std_out_hook:IOWriterHook = IOWriterHook(self.__mergehookfunction) def __mergehookfunction(self, input_object: ReadableIOStream, _: WritableIOStream): outline = input_object.read_line() while outline: self.std_out.write(outline) outline = input_object.read_line() - # other thread can clean up the file now - self.lock.release() - - def __mergehookfunction_close(self, input_object: ReadableIOStream, _: WritableIOStream): - outline = input_object.read_line() - while outline: - self.std_out.write(outline) - outline = input_object.read_line() - self.lock.acquire() - self.std_out.end_writing() def attatch(self, output: Output) -> Output: self._std_err_hook.start_hook_function(output.std_out) self._std_out_hook.start_hook_function(output.std_err) + self.std_out.end_writing() return Output(self.std_out, EmptyIOStream()) diff --git a/benchkit/shell/command_execution/io/stream.py b/benchkit/shell/command_execution/io/stream.py index 9facb5e8..d0c87939 100644 --- a/benchkit/shell/command_execution/io/stream.py +++ b/benchkit/shell/command_execution/io/stream.py @@ -54,21 +54,13 @@ def read_line(self) -> bytes: class PopenIOStream(ReadableIOStream): """Class that can interact with the stdout type objects given by Popen""" def __init__(self, stream: IO[bytes]): - self.__done=False self.__stream = stream super().__init__() def _read_bytes(self, amount_of_bytes: int) -> bytes: - if self.__done: - return b'' if self.__stream: - r = self.__stream.read(amount_of_bytes) - if r: - return r - self.__done = True - self.__stream.close() - return r - return b"" + return self.__stream.read(amount_of_bytes) + return b"s" class StringIOStream(ReadableIOStream): diff --git a/tests/command_execution/execute_command/other_tests.py b/tests/command_execution/execute_command/other_tests.py index dc328930..fdda5e62 100644 --- a/tests/command_execution/execute_command/other_tests.py +++ b/tests/command_execution/execute_command/other_tests.py @@ -7,8 +7,6 @@ from pathlib import Path import shlex import subprocess -import sys -import threading from time import sleep from typing import Any @@ -28,8 +26,6 @@ def shell_test(): log_ls = logger_line_hook( f"\033[34m[OUT | ls]\033[0m" + " {}", f"\033[91m[ERR | ls]\033[0m" + " {}", - "---logger_hook_out---", - "---logger_hook_err---" ) outobj, outhook = std_out_result_void_err() @@ -41,7 +37,7 @@ def shell_test(): ordered_output_hooks=[ merge, log_ls, - outhook, + # outhook, void_hook(), ] ) @@ -49,9 +45,6 @@ def shell_test(): ls_command.get_return_code() except: sleep(5) - for thread in threading.enumerate(): - print(thread.name) - # log_ls = logger_line_hook( From 88238a71eea1e892fadc24929a57ba0fa9e5c2e6 Mon Sep 17 00:00:00 2001 From: Bogaert Aaron Date: Wed, 9 Jul 2025 11:15:54 +0200 Subject: [PATCH 71/71] fixed bug in readline --- benchkit/shell/command_execution/io/stream.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/benchkit/shell/command_execution/io/stream.py b/benchkit/shell/command_execution/io/stream.py index d0c87939..8efe51bc 100644 --- a/benchkit/shell/command_execution/io/stream.py +++ b/benchkit/shell/command_execution/io/stream.py @@ -41,13 +41,15 @@ def read(self, amount_of_bytes: int) -> bytes: def read_line(self) -> bytes: """reads one line overflows into __buffer""" - byt = self.read(10) - while byt: + new_byt = self.read(10) + byt = b'' + while new_byt: + byt += new_byt sp = byt.split(b"\n", 1) if len(sp) > 1: self.__buffer = sp[1] return sp[0] + b"\n" - byt += self.read(10) + new_byt = self.read(10) return byt