#include "utils/command.hpp" #include #include "common/test.hpp" using namespace polybar; static logger null_logger(loglevel::NONE); TEST(Command, status) { // Test for command::exec(bool); { command cmd(null_logger, "echo polybar > /dev/null"); int status = cmd.exec(); EXPECT_EQ(status, EXIT_SUCCESS); } // Test for command::exec(bool); { command cmd(null_logger, "echo polybar"); int status = cmd.exec(); EXPECT_EQ(status, EXIT_SUCCESS); } } TEST(Command, status_async) { { command cmd(null_logger, "echo polybar > /dev/null"); EXPECT_EQ(cmd.exec(false), EXIT_SUCCESS); cmd.wait(); EXPECT_FALSE(cmd.is_running()); EXPECT_EQ(cmd.get_exit_status(), EXIT_SUCCESS); } } TEST(Command, output) { command cmd(null_logger, "echo polybar"); string str; cmd.exec(false); cmd.tail([&str](string&& string) { str = string; }); cmd.wait(); EXPECT_EQ(str, "polybar"); }