add command unit tests
This commit is contained in:
parent
5e5d8faf04
commit
e9d2f022cd
@ -5,6 +5,7 @@
|
||||
#include <thread>
|
||||
|
||||
#include "common.hpp"
|
||||
#include "components/types.hpp"
|
||||
#include "events/signal_fwd.hpp"
|
||||
#include "events/signal_receiver.hpp"
|
||||
#include "events/types.hpp"
|
||||
|
@ -77,7 +77,7 @@ class command<output_policy::IGNORED> {
|
||||
string m_cmd;
|
||||
|
||||
pid_t m_forkpid{};
|
||||
int m_forkstatus{};
|
||||
int m_forkstatus = - 1;
|
||||
};
|
||||
|
||||
template <>
|
||||
|
@ -48,6 +48,7 @@ function(add_unit_test source_file)
|
||||
endfunction()
|
||||
|
||||
add_unit_test(utils/color)
|
||||
add_unit_test(utils/command)
|
||||
add_unit_test(utils/math unit_tests)
|
||||
add_unit_test(utils/memory unit_tests)
|
||||
add_unit_test(utils/scope unit_tests)
|
||||
|
57
tests/unit_tests/utils/command.cpp
Normal file
57
tests/unit_tests/utils/command.cpp
Normal file
@ -0,0 +1,57 @@
|
||||
#include "utils/command.hpp"
|
||||
#include "common/test.hpp"
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
using namespace polybar;
|
||||
|
||||
TEST(Command, status) {
|
||||
// Test for command<output_policy::IGNORED>::exec(bool);
|
||||
{
|
||||
auto cmd = command_util::make_command<output_policy::IGNORED>("echo polybar > /dev/null");
|
||||
int status = cmd->exec();
|
||||
|
||||
EXPECT_EQ(status, EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
// Test for command<output_policy::REDIRECTED>::exec(bool);
|
||||
{
|
||||
auto cmd = command_util::make_command<output_policy::REDIRECTED>("echo polybar");
|
||||
int status = cmd->exec();
|
||||
|
||||
EXPECT_EQ(status, EXIT_SUCCESS);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(Command, status_async) {
|
||||
{
|
||||
auto cmd = command_util::make_command<output_policy::IGNORED>("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) {
|
||||
auto cmd = command_util::make_command<output_policy::REDIRECTED>("echo polybar");
|
||||
string str;
|
||||
cmd->exec(false);
|
||||
cmd->tail([&str](string&& string) { str = string; });
|
||||
cmd->wait();
|
||||
|
||||
EXPECT_EQ(str, "polybar");
|
||||
}
|
||||
|
||||
TEST(Command, readline) {
|
||||
auto cmd = command_util::make_command<output_policy::REDIRECTED>("read text;echo $text");
|
||||
|
||||
string str;
|
||||
cmd->exec(false);
|
||||
cmd->writeline("polybar");
|
||||
cmd->tail([&str](string&& string) { str = string; });
|
||||
|
||||
EXPECT_EQ(str, "polybar");
|
||||
}
|
@ -8,10 +8,9 @@
|
||||
using namespace polybar;
|
||||
|
||||
TEST(File, expand) {
|
||||
auto cmd = command_util::make_command("echo $HOME");
|
||||
auto cmd = command_util::make_command<output_policy::REDIRECTED>("echo $HOME");
|
||||
cmd->exec();
|
||||
cmd->tail([](string home) {
|
||||
EXPECT_EQ(home + "/test", file_util::expand("~/test"));
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user