def apply_env_changes(self, bench_env_changes, env_dct): """Applies both VM and benchmark specific environment to env_dct""" assert isinstance(bench_env_changes, list) # Apply vm specific environment changes EnvChange.apply_all(self.common_env_changes, env_dct) # Apply benchmark specific environment changes EnvChange.apply_all(bench_env_changes, env_dct)
def test_env_ctor0002(self): vm = PyPyVMDef("/bin/pypy", env={"LD_LIBRARY_PATH": "/path/to/happiness"}) assert len(vm.common_env_changes) == 2 ec1= vm.common_env_changes[0] assert ec1.var == "LD_LIBRARY_PATH" assert ec1.val == "/path/to/happiness" ec2 = vm.common_env_changes[1] assert ec2.var == "LD_LIBRARY_PATH" assert ec2.val == "/bin" env = {} EnvChange.apply_all(vm.common_env_changes, env) assert env["LD_LIBRARY_PATH"] == '/path/to/happiness:/bin'
def bench_cmdline_adjust(self, args, env_dct): """Prepends various arguments to benchmark invocation. Currently deals with: * CPU pinning (if available) * Adding libkruntime.so to linker path It does not deal with changing user, as this is done one level up in the wrapper script.""" # platform specific env changes to apply (if any) combine_env = env_dct.copy() changes = self.bench_env_changes() EnvChange.apply_all(changes, combine_env) return self.adjust_env_cmd(combine_env) + \ self.pin_process_args() + args