diff --git a/kernel_kselftest.sh b/kernel_kselftest.sh index 365fed2..5991ca5 100755 --- a/kernel_kselftest.sh +++ b/kernel_kselftest.sh @@ -18,14 +18,23 @@ else fi run_kselftest() { - SUDO_TARGETS=$1 - SKIP_TARGETS=$2 - mkdir -p $KSELFTEST_LOG_DIR - make -C tools/testing/selftests clean - make -C tools/testing/selftests SKIP_TARGETS="$SKIP_TARGETS" + mkdir -p "$KSELFTEST_LOG_DIR" + pushd tools/bpf/bpftool + make -j$(nproc) + popd + + make -j$(nproc) samples/bpf/ + + BPFTOOL=$(pwd)/tools/bpf/bpftool/bpftool + KSELFTEST_PATH=/var/kselftests + + pushd tools/testing/selftests + + make -j$(nproc) SKIP_TARGETS="$SKIP_TARGETS" INSTALL_PATH="$KSELFTEST_PATH" install + popd + for run in $(seq 1 $runs) ; do - make -C tools/testing/selftests SKIP_TARGETS="$SUDO_TARGETS $SKIP_TARGETS" run_tests | tee $KSELFTEST_LOG_DIR/selftest-$(uname -r)-$run.log - sudo make -C tools/testing/selftests TARGETS="$SUDO_TARGETS" run_tests | tee -a $KSELFTEST_LOG_DIR/selftest-$(uname -r)-$run.log + "$KSELFTEST_PATH/run_kselftest.sh" | tee "$KSELFTEST_LOG_DIR/selftest-$(uname -r)-$run.log" done } @@ -37,29 +46,25 @@ case $(uname -r) in echo echo "Running 3.10.0 kselftests" echo - SUDO_TARGETS="x86" SKIP_TARGETS="" ;; *4.18.0*) echo echo "Running 4.18.0 kselftests" echo - SUDO_TARGETS="capabilities cpu-hotplug cpufreq efivars efivarfs fpu ipc intel_pstate kexec lib livepatch memfd memory-hotplug mptcp mqueue net netfilter sync sysctl timens timers vm x86 zram" SKIP_TARGETS="" ;; *5.14.0*) echo echo "Running 5.14.0 kselftests" echo - SUDO_TARGETS="binderfs capabilities cgroup cpu-hotplug cpufreq efivars efivarfs firmware fpu gpio ipc intel_pstate ir kexec lib livepatch memfd memory-hotplug mptcp mqueue net netfilter sync sysctl timens timers vm x86 zram" - SKIP_TARGETS="lkdtm proc" + SKIP_TARGETS="lkdtm proc pidfd" ;; *6.12.*|\ *6.18.*) echo echo "Running 6.12/6.18 kselftests" echo - SUDO_TARGETS="binderfs capabilities cgroup clone3 cpu-hotplug cpufreq damon drivers/net efivars efivarfs exec firmware fpu gpio ipc intel_pstate ir kexec lib livepatch memfd memory-hotplug mptcp mqueue net netfilter sync sysctl timens timers vm x86 zram" SKIP_TARGETS="lkdtm net/forwarding" ;; *) @@ -69,4 +74,4 @@ case $(uname -r) in ;; esac -run_kselftest "$SUDO_TARGETS" "$SKIP_TARGETS" +run_kselftest diff --git a/kt/ktlib/virt.py b/kt/ktlib/virt.py index 579f053..f2b091c 100644 --- a/kt/ktlib/virt.py +++ b/kt/ktlib/virt.py @@ -67,8 +67,14 @@ def install( cls.run(command_type=VmCommandType.VIRT_INSTALL, command=command) @classmethod - def start(cls, vm_name: str) -> str: - cls.run(command_type=VmCommandType.VIRSH, command=["start", vm_name]) + def start(cls, vm_name: str): + try: + cls.run(command_type=VmCommandType.VIRSH, command=["start", vm_name]) + except RuntimeError as e: + if "Domain is already active" in str(e): + pass + else: + raise e @classmethod def console(cls, vm_name: str): diff --git a/kt/ktlib/vm.py b/kt/ktlib/vm.py index f526ccb..2b0e99d 100644 --- a/kt/ktlib/vm.py +++ b/kt/ktlib/vm.py @@ -270,7 +270,7 @@ def kselftests(self, config): logging.debug("Running kselftests") script = str(config.base_path / Path("kernel-src-tree-tools") / Path("kernel_kselftest.sh")) output_file = self.kernel_workspace.folder.absolute() / Path(f"kselftest-{self.current_head_sha_short()}.log") - ssh_cmd = f"cd {self.kernel_workspace.src_worktree.folder.absolute()} && {script}" + ssh_cmd = f"cd {self.kernel_workspace.src_worktree.folder.absolute()} && sudo {script}" SshCommand.run_with_output(output_file=output_file, domain=self.domain, command=[ssh_cmd])