Skip to content

Commit 5ee7f49

Browse files
committed
reduced usage of std::istringstream in test cases
1 parent 22a298b commit 5ee7f49

File tree

1 file changed

+20
-26
lines changed

1 file changed

+20
-26
lines changed

test.cpp

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,10 @@ static std::string readfile(const char code[], int sz=-1, simplecpp::OutputList
8686
return simplecpp::TokenList(istr,files,std::string(),outputList).stringify();
8787
}
8888

89-
static simplecpp::TokenList makeTokenList(const char code[], std::vector<std::string> &files, const std::string &file)
89+
static simplecpp::TokenList makeTokenList(const char code[], std::vector<std::string> &filenames, const std::string &filename=std::string(), simplecpp::OutputList *outputList=nullptr)
9090
{
9191
std::istringstream istr(code);
92-
return simplecpp::TokenList(istr,files,file);
92+
return simplecpp::TokenList(istr,filenames,filename,outputList);
9393
}
9494

9595
static simplecpp::TokenList makeTokenList(const char code[])
@@ -100,10 +100,9 @@ static simplecpp::TokenList makeTokenList(const char code[])
100100

101101
static std::string preprocess(const char code[], const simplecpp::DUI &dui, simplecpp::OutputList *outputList)
102102
{
103-
std::istringstream istr(code);
104103
std::vector<std::string> files;
105104
std::map<std::string, simplecpp::TokenList*> filedata;
106-
simplecpp::TokenList tokens(istr,files);
105+
simplecpp::TokenList tokens = makeTokenList(code,files);
107106
tokens.removeComments();
108107
simplecpp::TokenList tokens2(files);
109108
simplecpp::preprocess(tokens2, tokens, files, filedata, dui, outputList);
@@ -803,10 +802,9 @@ static void error3()
803802
{
804803
const char code[] = "#error \"bla bla\\\n"
805804
" bla bla.\"\n";
806-
std::istringstream istr(code);
807805
std::vector<std::string> files;
808806
simplecpp::OutputList outputList;
809-
simplecpp::TokenList rawtokens(istr, files, "test.c", &outputList);
807+
const simplecpp::TokenList rawtokens = makeTokenList(code, files, "test.c", &outputList);
810808
ASSERT_EQUALS("", toString(outputList));
811809
}
812810

@@ -1557,13 +1555,13 @@ static void missingHeader1()
15571555
static void missingHeader2()
15581556
{
15591557
const char code[] = "#include \"foo.h\"\n"; // this file exists
1560-
std::istringstream istr(code);
15611558
std::vector<std::string> files;
15621559
std::map<std::string, simplecpp::TokenList*> filedata;
15631560
filedata["foo.h"] = nullptr;
15641561
simplecpp::OutputList outputList;
15651562
simplecpp::TokenList tokens2(files);
1566-
simplecpp::preprocess(tokens2, simplecpp::TokenList(istr,files), files, filedata, simplecpp::DUI(), &outputList);
1563+
const simplecpp::TokenList rawtokens = makeTokenList(code,files);
1564+
simplecpp::preprocess(tokens2, rawtokens, files, filedata, simplecpp::DUI(), &outputList);
15671565
ASSERT_EQUALS("", toString(outputList));
15681566
}
15691567

@@ -1578,9 +1576,8 @@ static void missingHeader3()
15781576
static void nestedInclude()
15791577
{
15801578
const char code[] = "#include \"test.h\"\n";
1581-
std::istringstream istr(code);
15821579
std::vector<std::string> files;
1583-
simplecpp::TokenList rawtokens(istr,files,"test.h");
1580+
simplecpp::TokenList rawtokens = makeTokenList(code,files,"test.h");
15841581
std::map<std::string, simplecpp::TokenList*> filedata;
15851582
filedata["test.h"] = &rawtokens;
15861583

@@ -1604,9 +1601,8 @@ static void multiline2()
16041601
const char code[] = "#define A /*\\\n"
16051602
"*/1\n"
16061603
"A";
1607-
std::istringstream istr(code);
16081604
std::vector<std::string> files;
1609-
simplecpp::TokenList rawtokens(istr,files);
1605+
simplecpp::TokenList rawtokens = makeTokenList(code,files);
16101606
ASSERT_EQUALS("# define A /**/ 1\n\nA", rawtokens.stringify());
16111607
rawtokens.removeComments();
16121608
std::map<std::string, simplecpp::TokenList*> filedata;
@@ -1620,9 +1616,8 @@ static void multiline3() // #28 - macro with multiline comment
16201616
const char code[] = "#define A /*\\\n"
16211617
" */ 1\n"
16221618
"A";
1623-
std::istringstream istr(code);
16241619
std::vector<std::string> files;
1625-
simplecpp::TokenList rawtokens(istr,files);
1620+
simplecpp::TokenList rawtokens = makeTokenList(code,files);
16261621
ASSERT_EQUALS("# define A /* */ 1\n\nA", rawtokens.stringify());
16271622
rawtokens.removeComments();
16281623
std::map<std::string, simplecpp::TokenList*> filedata;
@@ -1637,9 +1632,8 @@ static void multiline4() // #28 - macro with multiline comment
16371632
" /*\\\n"
16381633
" */ 1\n"
16391634
"A";
1640-
std::istringstream istr(code);
16411635
std::vector<std::string> files;
1642-
simplecpp::TokenList rawtokens(istr,files);
1636+
simplecpp::TokenList rawtokens = makeTokenList(code,files);
16431637
ASSERT_EQUALS("# define A /* */ 1\n\n\nA", rawtokens.stringify());
16441638
rawtokens.removeComments();
16451639
std::map<std::string, simplecpp::TokenList*> filedata;
@@ -2057,9 +2051,9 @@ static void tokenMacro1()
20572051
"A";
20582052
std::vector<std::string> files;
20592053
std::map<std::string, simplecpp::TokenList*> filedata;
2060-
std::istringstream istr(code);
20612054
simplecpp::TokenList tokenList(files);
2062-
simplecpp::preprocess(tokenList, simplecpp::TokenList(istr,files), files, filedata, simplecpp::DUI());
2055+
const simplecpp::TokenList rawtokens = makeTokenList(code,files);
2056+
simplecpp::preprocess(tokenList, rawtokens, files, filedata, simplecpp::DUI());
20632057
ASSERT_EQUALS("A", tokenList.cback()->macro);
20642058
}
20652059

@@ -2069,9 +2063,9 @@ static void tokenMacro2()
20692063
"ADD(1,2)";
20702064
std::vector<std::string> files;
20712065
std::map<std::string, simplecpp::TokenList*> filedata;
2072-
std::istringstream istr(code);
20732066
simplecpp::TokenList tokenList(files);
2074-
simplecpp::preprocess(tokenList, simplecpp::TokenList(istr,files), files, filedata, simplecpp::DUI());
2067+
const simplecpp::TokenList rawtokens = makeTokenList(code,files);
2068+
simplecpp::preprocess(tokenList, rawtokens, files, filedata, simplecpp::DUI());
20752069
const simplecpp::Token *tok = tokenList.cfront();
20762070
ASSERT_EQUALS("1", tok->str());
20772071
ASSERT_EQUALS("", tok->macro);
@@ -2090,9 +2084,9 @@ static void tokenMacro3()
20902084
"ADD(FRED,2)";
20912085
std::vector<std::string> files;
20922086
std::map<std::string, simplecpp::TokenList*> filedata;
2093-
std::istringstream istr(code);
20942087
simplecpp::TokenList tokenList(files);
2095-
simplecpp::preprocess(tokenList, simplecpp::TokenList(istr,files), files, filedata, simplecpp::DUI());
2088+
const simplecpp::TokenList rawtokens = makeTokenList(code,files);
2089+
simplecpp::preprocess(tokenList, rawtokens, files, filedata, simplecpp::DUI());
20962090
const simplecpp::Token *tok = tokenList.cfront();
20972091
ASSERT_EQUALS("1", tok->str());
20982092
ASSERT_EQUALS("FRED", tok->macro);
@@ -2111,9 +2105,9 @@ static void tokenMacro4()
21112105
"A";
21122106
std::vector<std::string> files;
21132107
std::map<std::string, simplecpp::TokenList*> filedata;
2114-
std::istringstream istr(code);
21152108
simplecpp::TokenList tokenList(files);
2116-
simplecpp::preprocess(tokenList, simplecpp::TokenList(istr,files), files, filedata, simplecpp::DUI());
2109+
const simplecpp::TokenList rawtokens = makeTokenList(code,files);
2110+
simplecpp::preprocess(tokenList, rawtokens, files, filedata, simplecpp::DUI());
21172111
const simplecpp::Token *tok = tokenList.cfront();
21182112
ASSERT_EQUALS("1", tok->str());
21192113
ASSERT_EQUALS("A", tok->macro);
@@ -2126,9 +2120,9 @@ static void tokenMacro5()
21262120
"SET_BPF_JUMP(A | B | C);";
21272121
std::vector<std::string> files;
21282122
std::map<std::string, simplecpp::TokenList*> filedata;
2129-
std::istringstream istr(code);
21302123
simplecpp::TokenList tokenList(files);
2131-
simplecpp::preprocess(tokenList, simplecpp::TokenList(istr,files), files, filedata, simplecpp::DUI());
2124+
const simplecpp::TokenList rawtokens = makeTokenList(code,files);
2125+
simplecpp::preprocess(tokenList, rawtokens, files, filedata, simplecpp::DUI());
21322126
const simplecpp::Token *tok = tokenList.cfront()->next;
21332127
ASSERT_EQUALS("D", tok->str());
21342128
ASSERT_EQUALS("SET_BPF_JUMP", tok->macro);

0 commit comments

Comments
 (0)