diff --git a/test/chmod_transformer_test.cpp b/test/chmod_transformer_test.cpp index 7f12e622..56b3beed 100644 --- a/test/chmod_transformer_test.cpp +++ b/test/chmod_transformer_test.cpp @@ -20,6 +20,8 @@ */ #include +#include +#include #include #include @@ -76,6 +78,20 @@ std::ostream& operator<<(std::ostream& os, octal_mode const& mode) { #define EXPECT_EQ_MODE(a, b) EXPECT_EQ(octal_mode{a}, octal_mode{b}) +TEST(chmod_transformer, octal_mode) { + std::ostringstream os; + os << octal_mode{07777}; + EXPECT_EQ(os.str(), "07777 UGSrwxrwxrwx"); + + os.str(""); + os << octal_mode{std::nullopt}; + EXPECT_EQ(os.str(), "std::nullopt"); + + os.str(""); + os << octal_mode{0644}; + EXPECT_EQ(os.str(), "0644 ---rw-r--r--"); +} + TEST(chmod_transformer, basic) { { internal::chmod_transformer ct{"u+x", 0022};