Skip to content
This repository was archived by the owner on Feb 4, 2020. It is now read-only.

Commit 4f8b03e

Browse files
author
Simon Warta
committed
Add testObsoleteHeaderDisappearsIncludes{Alphabetic,Reverse}()
1 parent ed28d52 commit 4f8b03e

File tree

4 files changed

+63
-0
lines changed

4 files changed

+63
-0
lines changed

integrationtests.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,48 @@ def testRequiredHeaderDisappears(self):
323323
os.remove("info.h")
324324
subprocess.check_call(compileCmd)
325325

326+
# When a header included by another header becomes obsolete and disappers,
327+
# we must fall back to real compiler.
328+
def testObsoleteHeaderDisappearsIncludesAlphabetic(self):
329+
# A includes B
330+
with cd(os.path.join(ASSETS_DIR, "header-miss-obsolete")):
331+
compileCmd = CLCACHE_CMD + ["/I.", "/nologo", "/EHsc", "/c", "a_includes_b.cpp"]
332+
333+
with open("A.h", "w") as header:
334+
header.write('#define INFO 1337\n')
335+
header.write('#include "B.h"\n')
336+
with open("B.h", "w") as header:
337+
header.write('#define SOMETHING 1\n')
338+
339+
subprocess.check_call(compileCmd)
340+
341+
with open("A.h", "w") as header:
342+
header.write('#define INFO 1337\n')
343+
header.write('\n')
344+
os.remove("B.h")
345+
346+
subprocess.check_call(compileCmd)
347+
348+
def testObsoleteHeaderDisappearsIncludesReverse(self):
349+
# B includes A
350+
with cd(os.path.join(ASSETS_DIR, "header-miss-obsolete")):
351+
compileCmd = CLCACHE_CMD + ["/I.", "/nologo", "/EHsc", "/c", "b_includes_a.cpp"]
352+
353+
with open("A.h", "w") as header:
354+
header.write('#define SOMETHING 1\n')
355+
with open("B.h", "w") as header:
356+
header.write('#define INFO 1337\n')
357+
header.write('#include "A.h"\n')
358+
359+
subprocess.check_call(compileCmd)
360+
361+
os.remove("A.h")
362+
with open("B.h", "w") as header:
363+
header.write('#define INFO 1337\n')
364+
header.write('\n')
365+
366+
subprocess.check_call(compileCmd)
367+
326368

327369
class TestRunParallel(unittest.TestCase):
328370
def _zeroStats(self):
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
*.obj
2+
3+
# headers auto-generated by tests
4+
A.h
5+
B.h
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#include <iostream>
2+
#include "A.h"
3+
4+
int main()
5+
{
6+
std::cout << INFO << std::endl;
7+
return 0;
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#include <iostream>
2+
#include "B.h"
3+
4+
int main()
5+
{
6+
std::cout << INFO << std::endl;
7+
return 0;
8+
}

0 commit comments

Comments
 (0)