summaryrefslogtreecommitdiff
path: root/hyprtester/src/tests/main/exec.cpp
diff options
context:
space:
mode:
authorUjinT34 <41110182+UjinT34@users.noreply.github.com>2026-02-26 15:01:59 +0300
committerGitHub <noreply@github.com>2026-02-26 12:01:59 +0000
commitc71fbd854dfdedaae011f4b8b1fdb81f8054b309 (patch)
tree89d600037ab206f800acca1b2567eb60af67c7e9 /hyprtester/src/tests/main/exec.cpp
parent0e9196867b4f602e1e5a599d4f3565faff615b3c (diff)
renderer: better sdr eotf settings (#12812)
Diffstat (limited to 'hyprtester/src/tests/main/exec.cpp')
-rw-r--r--hyprtester/src/tests/main/exec.cpp59
1 files changed, 33 insertions, 26 deletions
diff --git a/hyprtester/src/tests/main/exec.cpp b/hyprtester/src/tests/main/exec.cpp
index fd42cf06..a410494a 100644
--- a/hyprtester/src/tests/main/exec.cpp
+++ b/hyprtester/src/tests/main/exec.cpp
@@ -2,6 +2,7 @@
#include "../../shared.hpp"
#include "../../hyprctlCompat.hpp"
#include <chrono>
+#include <format>
#include <thread>
#include <hyprutils/os/Process.hpp>
#include <hyprutils/memory/WeakPtr.hpp>
@@ -15,40 +16,46 @@ using namespace Hyprutils::Memory;
#define UP CUniquePointer
#define SP CSharedPointer
-static bool test() {
+const static auto SLEEP_DURATIONS = std::array{1, 10};
+
+static bool test() {
NLog::log("{}Testing process spawning", Colors::GREEN);
- // Note: POSIX sleep does not support fractional seconds, so
- // can't sleep for less than 1 second.
- OK(getFromSocket("/dispatch exec sleep 1"));
-
- // Ensure that sleep is our child
- const std::string sleepPidS = Tests::execAndGet("pgrep sleep");
- pid_t sleepPid;
- try {
- sleepPid = std::stoull(sleepPidS);
- } catch (...) {
- NLog::log("{}Sleep was not spawned or several sleeps are running: pgrep returned '{}'", Colors::RED, sleepPidS);
- return false;
- }
+ for (const auto duration : SLEEP_DURATIONS) {
+ // Note: POSIX sleep does not support fractional seconds, so
+ // can't sleep for less than 1 second.
+ OK(getFromSocket(std::format("/dispatch exec sleep {}", duration)));
+
+ // Ensure that sleep is our child
+ const std::string sleepPidS = Tests::execAndGet("pgrep sleep");
+ pid_t sleepPid;
+ try {
+ sleepPid = std::stoull(sleepPidS);
+ } catch (...) {
+ NLog::log("{}Sleep was not spawned or several sleeps are running: pgrep returned '{}'", Colors::RED, sleepPidS);
+ continue;
+ }
- const std::string sleepParentComm = Tests::execAndGet("cat \"/proc/$(ps -o ppid:1= -p " + sleepPidS + ")/comm\"");
- NLog::log("{}Expecting that sleep's parent is Hyprland", Colors::YELLOW);
- EXPECT_CONTAINS(sleepParentComm, "Hyprland");
+ const std::string sleepParentComm = Tests::execAndGet("cat \"/proc/$(ps -o ppid:1= -p " + sleepPidS + ")/comm\"");
+ NLog::log("{}Expecting that sleep's parent is Hyprland", Colors::YELLOW);
+ EXPECT_CONTAINS(sleepParentComm, "Hyprland");
- std::this_thread::sleep_for(std::chrono::seconds(1));
+ std::this_thread::sleep_for(std::chrono::seconds(duration));
- // Ensure that sleep did not become a zombie
- EXPECT(Tests::processAlive(sleepPid), false);
+ // Ensure that sleep did not become a zombie
+ EXPECT(Tests::processAlive(sleepPid), false);
- // kill all
- NLog::log("{}Killing all windows", Colors::YELLOW);
- Tests::killAllWindows();
+ // kill all
+ NLog::log("{}Killing all windows", Colors::YELLOW);
+ Tests::killAllWindows();
- NLog::log("{}Expecting 0 windows", Colors::YELLOW);
- EXPECT(Tests::windowCount(), 0);
+ NLog::log("{}Expecting 0 windows", Colors::YELLOW);
+ EXPECT(Tests::windowCount(), 0);
+
+ return !ret;
+ }
- return !ret;
+ return false;
}
REGISTER_TEST_FN(test)