2015-06-22 21:29:29 +02:00
|
|
|
/*
|
|
|
|
* Unit tests for src/fs/
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "config.h"
|
|
|
|
#include "fs/Glob.hxx"
|
|
|
|
|
2018-10-16 19:01:13 +02:00
|
|
|
#include <gtest/gtest.h>
|
2015-06-22 21:29:29 +02:00
|
|
|
|
|
|
|
#ifdef HAVE_CLASS_GLOB
|
|
|
|
|
2018-10-16 19:01:13 +02:00
|
|
|
TEST(Glob, Basic)
|
|
|
|
{
|
|
|
|
const Glob glob("foo");
|
|
|
|
EXPECT_TRUE(glob.Check("foo"));
|
|
|
|
EXPECT_FALSE(glob.Check("fooo"));
|
|
|
|
EXPECT_FALSE(glob.Check("_foo"));
|
|
|
|
EXPECT_FALSE(glob.Check("a/foo"));
|
|
|
|
EXPECT_FALSE(glob.Check(""));
|
|
|
|
EXPECT_FALSE(glob.Check("*"));
|
|
|
|
}
|
2015-06-22 21:29:29 +02:00
|
|
|
|
2018-10-16 19:01:13 +02:00
|
|
|
TEST(Glob, Asterisk)
|
|
|
|
{
|
|
|
|
const Glob glob("*");
|
|
|
|
EXPECT_TRUE(glob.Check("foo"));
|
|
|
|
EXPECT_TRUE(glob.Check("bar"));
|
|
|
|
EXPECT_TRUE(glob.Check("*"));
|
|
|
|
EXPECT_TRUE(glob.Check("?"));
|
|
|
|
}
|
2015-06-22 21:29:29 +02:00
|
|
|
|
2018-10-16 19:01:13 +02:00
|
|
|
TEST(Glob, QuestionMark)
|
|
|
|
{
|
|
|
|
const Glob glob("foo?bar");
|
|
|
|
EXPECT_TRUE(glob.Check("foo_bar"));
|
|
|
|
EXPECT_TRUE(glob.Check("foo?bar"));
|
|
|
|
EXPECT_TRUE(glob.Check("foo bar"));
|
|
|
|
EXPECT_FALSE(glob.Check("foobar"));
|
|
|
|
EXPECT_FALSE(glob.Check("foo__bar"));
|
|
|
|
}
|
2015-06-22 21:29:29 +02:00
|
|
|
|
2018-10-16 19:01:13 +02:00
|
|
|
TEST(Glob, Wildcard)
|
|
|
|
{
|
|
|
|
const Glob glob("foo*bar");
|
|
|
|
EXPECT_TRUE(glob.Check("foo_bar"));
|
|
|
|
EXPECT_TRUE(glob.Check("foo?bar"));
|
|
|
|
EXPECT_TRUE(glob.Check("foo bar"));
|
|
|
|
EXPECT_TRUE(glob.Check("foobar"));
|
|
|
|
EXPECT_TRUE(glob.Check("foo__bar"));
|
|
|
|
EXPECT_FALSE(glob.Check("_foobar"));
|
|
|
|
EXPECT_FALSE(glob.Check("foobar_"));
|
|
|
|
}
|
2015-06-22 21:29:29 +02:00
|
|
|
|
2018-10-16 19:01:13 +02:00
|
|
|
TEST(Glob, PrefixWildcard)
|
|
|
|
{
|
|
|
|
const Glob glob("*bar");
|
|
|
|
EXPECT_TRUE(glob.Check("foo_bar"));
|
|
|
|
EXPECT_TRUE(glob.Check("foo?bar"));
|
|
|
|
EXPECT_TRUE(glob.Check("foo bar"));
|
|
|
|
EXPECT_TRUE(glob.Check("foobar"));
|
|
|
|
EXPECT_TRUE(glob.Check("foo__bar"));
|
|
|
|
EXPECT_TRUE(glob.Check("_foobar"));
|
|
|
|
EXPECT_TRUE(glob.Check("bar"));
|
|
|
|
EXPECT_FALSE(glob.Check("foobar_"));
|
|
|
|
}
|
2015-06-22 21:29:29 +02:00
|
|
|
|
2018-10-16 19:01:13 +02:00
|
|
|
TEST(Glob, SuffixWildcard)
|
2015-06-22 21:29:29 +02:00
|
|
|
{
|
2018-10-16 19:01:13 +02:00
|
|
|
const Glob glob("foo*");
|
|
|
|
EXPECT_TRUE(glob.Check("foo_bar"));
|
|
|
|
EXPECT_TRUE(glob.Check("foo?bar"));
|
|
|
|
EXPECT_TRUE(glob.Check("foo bar"));
|
|
|
|
EXPECT_TRUE(glob.Check("foobar"));
|
|
|
|
EXPECT_TRUE(glob.Check("foo__bar"));
|
|
|
|
EXPECT_TRUE(glob.Check("foobar_"));
|
|
|
|
EXPECT_TRUE(glob.Check("foo"));
|
2015-06-22 21:29:29 +02:00
|
|
|
}
|
2018-10-16 19:01:13 +02:00
|
|
|
|
|
|
|
#endif
|