hyprutils/tests/os.cpp

35 lines
989 B
C++
Raw Normal View History

2024-12-21 15:47:46 +00:00
#include <csignal>
#include <cerrno>
#include <cstdlib>
#include <unistd.h>
2024-10-14 22:26:41 +01:00
#include <hyprutils/os/Process.hpp>
#include "shared.hpp"
using namespace Hyprutils::OS;
int main(int argc, char** argv, char** envp) {
int ret = 0;
2024-10-14 22:26:41 +01:00
2024-11-15 20:28:59 +00:00
CProcess process("sh", {"-c", "echo \"Hello $WORLD!\""});
process.addEnv("WORLD", "World");
2024-10-14 22:26:41 +01:00
EXPECT(process.runAsync(), true);
EXPECT(process.runSync(), true);
EXPECT(process.stdOut(), std::string{"Hello World!\n"});
EXPECT(process.stdErr(), std::string{""});
2025-04-30 02:16:30 +01:00
EXPECT(process.exitCode(), 0);
2024-10-14 22:26:41 +01:00
2024-12-21 15:47:46 +00:00
CProcess process2("sh", {"-c", "while true; do sleep 1; done;"});
EXPECT(process2.runAsync(), true);
EXPECT(getpgid(process2.pid()) >= 0, true);
kill(process2.pid(), SIGKILL);
2025-04-30 02:16:30 +01:00
CProcess process3("sh", {"-c", "cat /geryueruggbuergheruger/reugiheruygyuerghuryeghyer/eruihgyuerguyerghyuerghuyergerguyer/NON_EXISTENT"});
EXPECT(process3.runSync(), true);
EXPECT(process3.exitCode(), 1);
2024-10-14 22:26:41 +01:00
return ret;
}