File: Process.cpp

package info (click to toggle)
hyprutils 0.11.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 560 kB
  • sloc: cpp: 5,332; sh: 10; makefile: 3
file content (28 lines) | stat: -rw-r--r-- 877 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <hyprutils/os/Process.hpp>

#include <gtest/gtest.h>

using namespace Hyprutils::OS;

TEST(OS, process) {
    CProcess process("sh", {"-c", "echo \"Hello $WORLD!\""});
    process.addEnv("WORLD", "World");

    EXPECT_EQ(process.runAsync(), true);
    EXPECT_EQ(process.runSync(), true);

    EXPECT_EQ(process.stdOut(), std::string{"Hello World!\n"});
    EXPECT_EQ(process.stdErr(), std::string{""});
    EXPECT_EQ(process.exitCode(), 0);

    CProcess process2("sh", {"-c", "while true; do sleep 1; done;"});

    EXPECT_EQ(process2.runAsync(), true);
    EXPECT_EQ(getpgid(process2.pid()) >= 0, true);

    kill(process2.pid(), SIGKILL);

    CProcess process3("sh", {"-c", "cat /geryueruggbuergheruger/reugiheruygyuerghuryeghyer/eruihgyuerguyerghyuerghuyergerguyer/NON_EXISTENT"});
    EXPECT_EQ(process3.runSync(), true);
    EXPECT_EQ(process3.exitCode(), 1);
}