From bf9d9817edef727e57f8d0b40e9a471b8843ac9f Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Tue, 5 Jan 2010 17:21:36 +0000 Subject: [PATCH] bug 292005: JUnit failure: managedbuilder BuildSystem40Tests.test40 does not check benchmarks properly Added heuristics to handle absolute workspace path --- .../Test 4.0 ConfigName.Dbg/d1/d2/subdir.mk | 4 +-- .../Test 4.0 ConfigName.Dbg/d1/subdir.mk | 2 +- .../d1_1/d2_1/subdir.mk | 2 +- .../Test 4.0 ConfigName.Dbg/d1_1/subdir.mk | 2 +- .../dir1/dd/excluded_c/asd/subdir.mk | 2 +- .../dir1/dd/excluded_c/subdir.mk | 2 +- .../dir1/dd/ff/subdir.mk | 2 +- .../testplugin/ManagedBuildTestHelper.java | 33 +++++++++++++++++++ 8 files changed, 41 insertions(+), 8 deletions(-) diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/d2/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/d2/subdir.mk index 7ae3b09ae50..07734b0dc88 100644 --- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/d2/subdir.mk +++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/d2/subdir.mk @@ -20,14 +20,14 @@ CPP_DEPS += \ d1/d2/e.o: ../d1/d2/e.cpp @echo 'Building file: $<' @echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp' - g++ -Id2_ecpp_rel/path -I../d2_ecpp_proj/rel/path -I/d2_ecpp_abs/path -Ic:/d2_ecpp_abs/path -Id2_rel/path -I../d2_proj/rel/path -I/d2_abs/path -Ic:/d2_abs/path -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -Iv_rel/path -I/v_abs/path -Ic:/v_abs/path -I"D:\docs\incs" -I"D:\d1_docs\incs" -I"D:\d2_docs\incs" -I"D:\d2_ecpp_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"d1/d2/e.d" -o"$@" "$<" + g++ -Id2_ecpp_rel/path -I../d2_ecpp_proj/rel/path -I/d2_ecpp_abs/path -Ic:/d2_ecpp_abs/path -Id2_rel/path -I../d2_proj/rel/path -I/d2_abs/path -Ic:/d2_abs/path -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -I"D:\d1_docs\incs" -I"D:\d2_docs\incs" -I"D:\d2_ecpp_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"d1/d2/e.d" -o"$@" "$<" @echo 'Finished building: $<' @echo ' ' d1/d2/%.o: ../d1/d2/%.cpp @echo 'Building file: $<' @echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp' - g++ -Id2_rel/path -I../d2_proj/rel/path -I/d2_abs/path -Ic:/d2_abs/path -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -Iv_rel/path -I/v_abs/path -Ic:/v_abs/path -I"D:\docs\incs" -I"D:\d1_docs\incs" -I"D:\d2_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" + g++ -Id2_rel/path -I../d2_proj/rel/path -I/d2_abs/path -Ic:/d2_abs/path -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -I"D:\d1_docs\incs" -I"D:\d2_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" @echo 'Finished building: $<' @echo ' ' diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/subdir.mk index 56953b502c4..88acd723868 100644 --- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/subdir.mk +++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/subdir.mk @@ -23,7 +23,7 @@ CPP_DEPS += \ d1/%.o: ../d1/%.cpp @echo 'Building file: $<' @echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp' - g++ -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -Iv_rel/path -I/v_abs/path -Ic:/v_abs/path -I"D:\docs\incs" -I"D:\d1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" + g++ -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -I"D:\d1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" @echo 'Finished building: $<' @echo ' ' diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/d2_1/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/d2_1/subdir.mk index cceebd5266e..6b4aff57db7 100644 --- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/d2_1/subdir.mk +++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/d2_1/subdir.mk @@ -20,7 +20,7 @@ CPP_DEPS += \ d1_1/d2_1/%.o: ../d1_1/d2_1/%.cpp @echo 'Building file: $<' @echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp' - g++ -Id2_1_rel/path -I/d2_1_abs/path -Ic:/d2_1_abs/path -Id1_1_rel/path -I/d1_1_abs/path -Ic:/d1_1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -Iv_rel/path -I/v_abs/path -Ic:/v_abs/path -I"D:\docs\incs" -I"D:\d1_1_docs\incs" -I"D:\d2_1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" + g++ -Id2_1_rel/path -I/d2_1_abs/path -Ic:/d2_1_abs/path -Id1_1_rel/path -I/d1_1_abs/path -Ic:/d1_1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -I"D:\d1_1_docs\incs" -I"D:\d2_1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" @echo 'Finished building: $<' @echo ' ' diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/subdir.mk index 0dec8fafa25..8370f944d63 100644 --- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/subdir.mk +++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/subdir.mk @@ -20,7 +20,7 @@ CPP_DEPS += \ d1_1/%.o: ../d1_1/%.cpp @echo 'Building file: $<' @echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp' - g++ -Id1_1_rel/path -I/d1_1_abs/path -Ic:/d1_1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -Iv_rel/path -I/v_abs/path -Ic:/v_abs/path -I"D:\docs\incs" -I"D:\d1_1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" + g++ -Id1_1_rel/path -I/d1_1_abs/path -Ic:/d1_1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -I"D:\d1_1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" @echo 'Finished building: $<' @echo ' ' diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/asd/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/asd/subdir.mk index 7a167332ad9..e3d0a6e70b6 100644 --- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/asd/subdir.mk +++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/asd/subdir.mk @@ -17,7 +17,7 @@ CPP_DEPS += \ dir1/dd/excluded_c/asd/%.o: ../dir1/dd/excluded_c/asd/%.cpp @echo 'Building file: $<' @echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp' - g++ -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -Iv_rel/path -I/v_abs/path -Ic:/v_abs/path -I"D:\docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" + g++ -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" @echo 'Finished building: $<' @echo ' ' diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/subdir.mk index dec14e48a7b..9dff85a8b2f 100644 --- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/subdir.mk +++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/subdir.mk @@ -17,7 +17,7 @@ CPP_DEPS += \ dir1/dd/excluded_c/%.o: ../dir1/dd/excluded_c/%.cpp @echo 'Building file: $<' @echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp' - g++ -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -Iv_rel/path -I/v_abs/path -Ic:/v_abs/path -I"D:\docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" + g++ -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" @echo 'Finished building: $<' @echo ' ' diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/ff/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/ff/subdir.mk index a321ecafc2d..c5b23631cbf 100644 --- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/ff/subdir.mk +++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/ff/subdir.mk @@ -31,7 +31,7 @@ dir1/dd/ff/%.o: ../dir1/dd/ff/%.c dir1/dd/ff/%.o: ../dir1/dd/ff/%.cpp @echo 'Building file: $<' @echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp' - g++ -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -Iv_rel/path -I/v_abs/path -Ic:/v_abs/path -I"D:\docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" + g++ -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" @echo 'Finished building: $<' @echo ' ' diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/ManagedBuildTestHelper.java b/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/ManagedBuildTestHelper.java index 9a2a69518af..09fbfdba72a 100644 --- a/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/ManagedBuildTestHelper.java +++ b/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/ManagedBuildTestHelper.java @@ -488,6 +488,7 @@ public class ManagedBuildTestHelper { final String INCLUDE_PATTERN = "-include \\$\\(.*\\)"; final String MACRO_PATTERN = "\\S* [:+]=.*"; final String EMPTY_MACRO_PATTERN = "\\S* :="; + final String WORKSPACE_DIR_STR = "${WorkspaceDirPath}"; ArrayList testArray = mergeContinuationLines(getContents(testFile)); ArrayList benchmarkArray = mergeContinuationLines(getContents(benchmarkFile)); @@ -541,6 +542,38 @@ public class ManagedBuildTestHelper { // accommodate for variable order of macros testNotMatchingLines.add(testLine); benchNotMatchingLines.add(benchmarkLine); + } else if (benchmarkLine.contains(WORKSPACE_DIR_STR)) { + String[] benchmarkSubstrings = benchmarkLine.split(" "); + String[] testSubstrings = testLine.split(" "); + if (testSubstrings.length!=benchmarkSubstrings.length) { + System.out.println("Following lines do not match ("+testFile.lastSegment()+"):"); + System.out.println("actual : ["+testLine+"], file "+testFile); + System.out.println("expected: ["+benchmarkLine+"], file "+benchmarkFile); + return false; + } + + final IWorkspace workspace = ResourcesPlugin.getWorkspace(); + final IWorkspaceRoot root = workspace.getRoot(); + final String workspaceLocation = root.getLocation().toOSString(); + final String platformFileSeparator = System.getProperty("file.separator", Character.toString(IPath.SEPARATOR)); //$NON-NLS-1$ + + for (int j=0;j