Skip to content

Commit 5bf18a8

Browse files
committed
reduced usage of std::istringstream in test cases
1 parent a58ae62 commit 5bf18a8

1 file changed

Lines changed: 20 additions & 26 deletions

File tree

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

@@ -1438,13 +1436,13 @@ static void missingHeader1()
14381436
static void missingHeader2()
14391437
{
14401438
const char code[] = "#include \"foo.h\"\n"; // this file exists
1441-
std::istringstream istr(code);
14421439
std::vector<std::string> files;
14431440
std::map<std::string, simplecpp::TokenList*> filedata;
14441441
filedata["foo.h"] = nullptr;
14451442
simplecpp::OutputList outputList;
14461443
simplecpp::TokenList tokens2(files);
1447-
simplecpp::preprocess(tokens2, simplecpp::TokenList(istr,files), files, filedata, simplecpp::DUI(), &outputList);
1444+
const simplecpp::TokenList rawtokens = makeTokenList(code,files);
1445+
simplecpp::preprocess(tokens2, rawtokens, files, filedata, simplecpp::DUI(), &outputList);
14481446
ASSERT_EQUALS("", toString(outputList));
14491447
}
14501448

@@ -1459,9 +1457,8 @@ static void missingHeader3()
14591457
static void nestedInclude()
14601458
{
14611459
const char code[] = "#include \"test.h\"\n";
1462-
std::istringstream istr(code);
14631460
std::vector<std::string> files;
1464-
simplecpp::TokenList rawtokens(istr,files,"test.h");
1461+
simplecpp::TokenList rawtokens = makeTokenList(code,files,"test.h");
14651462
std::map<std::string, simplecpp::TokenList*> filedata;
14661463
filedata["test.h"] = &rawtokens;
14671464

@@ -1485,9 +1482,8 @@ static void multiline2()
14851482
const char code[] = "#define A /*\\\n"
14861483
"*/1\n"
14871484
"A";
1488-
std::istringstream istr(code);
14891485
std::vector<std::string> files;
1490-
simplecpp::TokenList rawtokens(istr,files);
1486+
simplecpp::TokenList rawtokens = makeTokenList(code,files);
14911487
ASSERT_EQUALS("# define A /**/ 1\n\nA", rawtokens.stringify());
14921488
rawtokens.removeComments();
14931489
std::map<std::string, simplecpp::TokenList*> filedata;
@@ -1501,9 +1497,8 @@ static void multiline3() // #28 - macro with multiline comment
15011497
const char code[] = "#define A /*\\\n"
15021498
" */ 1\n"
15031499
"A";
1504-
std::istringstream istr(code);
15051500
std::vector<std::string> files;
1506-
simplecpp::TokenList rawtokens(istr,files);
1501+
simplecpp::TokenList rawtokens = makeTokenList(code,files);
15071502
ASSERT_EQUALS("# define A /* */ 1\n\nA", rawtokens.stringify());
15081503
rawtokens.removeComments();
15091504
std::map<std::string, simplecpp::TokenList*> filedata;
@@ -1518,9 +1513,8 @@ static void multiline4() // #28 - macro with multiline comment
15181513
" /*\\\n"
15191514
" */ 1\n"
15201515
"A";
1521-
std::istringstream istr(code);
15221516
std::vector<std::string> files;
1523-
simplecpp::TokenList rawtokens(istr,files);
1517+
simplecpp::TokenList rawtokens = makeTokenList(code,files);
15241518
ASSERT_EQUALS("# define A /* */ 1\n\n\nA", rawtokens.stringify());
15251519
rawtokens.removeComments();
15261520
std::map<std::string, simplecpp::TokenList*> filedata;
@@ -1938,9 +1932,9 @@ static void tokenMacro1()
19381932
"A";
19391933
std::vector<std::string> files;
19401934
std::map<std::string, simplecpp::TokenList*> filedata;
1941-
std::istringstream istr(code);
19421935
simplecpp::TokenList tokenList(files);
1943-
simplecpp::preprocess(tokenList, simplecpp::TokenList(istr,files), files, filedata, simplecpp::DUI());
1936+
const simplecpp::TokenList rawtokens = makeTokenList(code,files);
1937+
simplecpp::preprocess(tokenList, rawtokens, files, filedata, simplecpp::DUI());
19441938
ASSERT_EQUALS("A", tokenList.cback()->macro);
19451939
}
19461940

@@ -1950,9 +1944,9 @@ static void tokenMacro2()
19501944
"ADD(1,2)";
19511945
std::vector<std::string> files;
19521946
std::map<std::string, simplecpp::TokenList*> filedata;
1953-
std::istringstream istr(code);
19541947
simplecpp::TokenList tokenList(files);
1955-
simplecpp::preprocess(tokenList, simplecpp::TokenList(istr,files), files, filedata, simplecpp::DUI());
1948+
const simplecpp::TokenList rawtokens = makeTokenList(code,files);
1949+
simplecpp::preprocess(tokenList, rawtokens, files, filedata, simplecpp::DUI());
19561950
const simplecpp::Token *tok = tokenList.cfront();
19571951
ASSERT_EQUALS("1", tok->str());
19581952
ASSERT_EQUALS("", tok->macro);
@@ -1971,9 +1965,9 @@ static void tokenMacro3()
19711965
"ADD(FRED,2)";
19721966
std::vector<std::string> files;
19731967
std::map<std::string, simplecpp::TokenList*> filedata;
1974-
std::istringstream istr(code);
19751968
simplecpp::TokenList tokenList(files);
1976-
simplecpp::preprocess(tokenList, simplecpp::TokenList(istr,files), files, filedata, simplecpp::DUI());
1969+
const simplecpp::TokenList rawtokens = makeTokenList(code,files);
1970+
simplecpp::preprocess(tokenList, rawtokens, files, filedata, simplecpp::DUI());
19771971
const simplecpp::Token *tok = tokenList.cfront();
19781972
ASSERT_EQUALS("1", tok->str());
19791973
ASSERT_EQUALS("FRED", tok->macro);
@@ -1992,9 +1986,9 @@ static void tokenMacro4()
19921986
"A";
19931987
std::vector<std::string> files;
19941988
std::map<std::string, simplecpp::TokenList*> filedata;
1995-
std::istringstream istr(code);
19961989
simplecpp::TokenList tokenList(files);
1997-
simplecpp::preprocess(tokenList, simplecpp::TokenList(istr,files), files, filedata, simplecpp::DUI());
1990+
const simplecpp::TokenList rawtokens = makeTokenList(code,files);
1991+
simplecpp::preprocess(tokenList, rawtokens, files, filedata, simplecpp::DUI());
19981992
const simplecpp::Token *tok = tokenList.cfront();
19991993
ASSERT_EQUALS("1", tok->str());
20001994
ASSERT_EQUALS("A", tok->macro);
@@ -2007,9 +2001,9 @@ static void tokenMacro5()
20072001
"SET_BPF_JUMP(A | B | C);";
20082002
std::vector<std::string> files;
20092003
std::map<std::string, simplecpp::TokenList*> filedata;
2010-
std::istringstream istr(code);
20112004
simplecpp::TokenList tokenList(files);
2012-
simplecpp::preprocess(tokenList, simplecpp::TokenList(istr,files), files, filedata, simplecpp::DUI());
2005+
const simplecpp::TokenList rawtokens = makeTokenList(code,files);
2006+
simplecpp::preprocess(tokenList, rawtokens, files, filedata, simplecpp::DUI());
20132007
const simplecpp::Token *tok = tokenList.cfront()->next;
20142008
ASSERT_EQUALS("D", tok->str());
20152009
ASSERT_EQUALS("SET_BPF_JUMP", tok->macro);

0 commit comments

Comments
 (0)