#include "shlex.hh" #include #include #include using testing::Eq; namespace nix { TEST(Shlex, shell_split) { ASSERT_THAT(shell_split(""), Eq>({})); ASSERT_THAT(shell_split(" "), Eq>({})); ASSERT_THAT( shell_split("puppy doggy"), Eq>({ "puppy", "doggy", }) ); ASSERT_THAT( shell_split("goldie \"puppy 'doggy'\" sweety"), Eq>({ "goldie", "puppy 'doggy'", "sweety", }) ); ASSERT_THAT( shell_split("\"pupp\\\"y\""), Eq>({ "pupp\"y" }) ); ASSERT_THAT( shell_split("goldie 'puppy' doggy"), Eq>({ "goldie", "puppy", "doggy", }) ); ASSERT_THAT( shell_split("'pupp\\\"y'"), Eq>({ "pupp\\\"y", }) ); ASSERT_THROW(shell_split("\"puppy"), ShlexError); ASSERT_THROW(shell_split("'puppy"), ShlexError); } } // namespace nix