Skip to content

Commit 9e4b656

Browse files
committed
Add tests
1 parent 129ff08 commit 9e4b656

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

test.cpp

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2926,6 +2926,64 @@ static void include9()
29262926
ASSERT_EQUALS("\n#line 2 \"1.h\"\nx = 1 ;", out.stringify());
29272927
}
29282928

2929+
static void include10() // #669 - -include with load()
2930+
{
2931+
const char code_c[] = "X\n";
2932+
const char code_h[] = "#define X 123\n";
2933+
2934+
std::vector<std::string> files;
2935+
2936+
const simplecpp::TokenList rawtokens_c = makeTokenList(code_c, files, "src.c");
2937+
const simplecpp::TokenList rawtokens_h = makeTokenList(code_h, files, "inc.h");
2938+
2939+
ASSERT_EQUALS(2U, files.size());
2940+
ASSERT_EQUALS("src.c", files[0]);
2941+
ASSERT_EQUALS("inc.h", files[1]);
2942+
2943+
simplecpp::FileDataCache cache;
2944+
cache.insert({"src.c", rawtokens_c});
2945+
cache.insert({"inc.h", rawtokens_h});
2946+
2947+
simplecpp::OutputList outputList;
2948+
simplecpp::DUI dui;
2949+
dui.includes.emplace_back("inc.h");
2950+
dui.includes.emplace_back("missing.h");
2951+
cache = simplecpp::load(rawtokens_c, files, dui, &outputList, std::move(cache));
2952+
2953+
ASSERT_EQUALS(1, outputList.size());
2954+
ASSERT_EQUALS("Can not open include file 'missing.h' that is explicitly included.", outputList.begin()->msg);
2955+
}
2956+
2957+
static void include11() // #669 - -include with preprocess()
2958+
{
2959+
const char code_c[] = "X\n";
2960+
const char code_h[] = "#define X 123\n";
2961+
2962+
std::vector<std::string> files;
2963+
2964+
const simplecpp::TokenList rawtokens_c = makeTokenList(code_c, files, "src.c");
2965+
const simplecpp::TokenList rawtokens_h = makeTokenList(code_h, files, "inc.h");
2966+
2967+
ASSERT_EQUALS(2U, files.size());
2968+
ASSERT_EQUALS("src.c", files[0]);
2969+
ASSERT_EQUALS("inc.h", files[1]);
2970+
2971+
simplecpp::FileDataCache cache;
2972+
cache.insert({"src.c", rawtokens_c});
2973+
cache.insert({"inc.h", rawtokens_h});
2974+
2975+
simplecpp::OutputList outputList;
2976+
simplecpp::TokenList out(files);
2977+
simplecpp::DUI dui;
2978+
dui.includes.emplace_back("inc.h");
2979+
dui.includes.emplace_back("missing.h");
2980+
simplecpp::preprocess(out, rawtokens_c, files, cache, dui, &outputList);
2981+
2982+
ASSERT_EQUALS("123", out.stringify());
2983+
ASSERT_EQUALS(1, outputList.size());
2984+
ASSERT_EQUALS("Can not open include file 'missing.h' that is explicitly included.", outputList.begin()->msg);
2985+
}
2986+
29292987
static void readfile_nullbyte()
29302988
{
29312989
const char code[] = "ab\0cd";
@@ -4118,6 +4176,8 @@ static void runTests(int argc, char **argv, Input input)
41184176
TEST_CASE(include7); // #include MACRO
41194177
TEST_CASE(include8); // #include MACRO(X)
41204178
TEST_CASE(include9); // #include MACRO
4179+
TEST_CASE(include10); // -include with load()
4180+
TEST_CASE(include11); // -include with preprocess()
41214181

41224182
TEST_CASE(multiline1);
41234183
TEST_CASE(multiline2);

0 commit comments

Comments
 (0)