/*******************************************************************************
* Copyright (c) 2011, 2012 Anton Gorenkov
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Anton Gorenkov - initial implementation
*******************************************************************************/
package org.eclipse.cdt.testsrunner.testsrunners;
import org.eclipse.cdt.testsrunner.internal.gtest.GoogleTestsRunnerProvider;
import org.eclipse.cdt.testsrunner.launcher.ITestsRunnerProvider;
import org.eclipse.cdt.testsrunner.model.ITestItem;
import org.eclipse.cdt.testsrunner.model.ITestMessage;
/**
* Tests for {@see GoogleTestsRunner} class
*/
@SuppressWarnings("nls")
public class GoogleTestCase extends BaseTestCase {
private static final String DEFAULT_LOCATION_FILE = null;
private static final int DEFAULT_LOCATION_LINE = 1;
@Override
protected ITestsRunnerProvider createTestsRunner() {
return new GoogleTestsRunnerProvider();
}
//Running main() from gtest_main.cc
//[==========] Running 0 tests from 0 test cases.
//[==========] 0 tests from 0 test cases ran. (0 ms total)
//[ PASSED ] 0 tests.
public void testNoTestCases() {
}
//Running main() from gtest_main.cc
//[==========] Running 1 test from 1 test case.
//[----------] Global test environment set-up.
//[----------] 1 test from DemoTestCase
//[ RUN ] DemoTestCase.DemoTest
//[ OK ] DemoTestCase.DemoTest (0 ms)
//[----------] 1 test from DemoTestCase (0 ms total)
//
//[----------] Global test environment tear-down
//[==========] 1 test from 1 test case ran. (0 ms total)
//[ PASSED ] 1 test.
public void testTheOnlyTestCase() {
mockModelUpdater.skipCalls("setTestStatus");
mockModelUpdater.skipCalls("setTestingTime");
mockModelUpdater.enterTestSuite("DemoTestCase");
mockModelUpdater.enterTestCase("DemoTest");
mockModelUpdater.exitTestCase();
mockModelUpdater.exitTestSuite();
}
//Running main() from gtest_main.cc
//[==========] Running 3 tests from 1 test case.
//[----------] Global test environment set-up.
//[----------] 3 tests from DemoTestCase
//[ RUN ] DemoTestCase.DemoTest1
//[ OK ] DemoTestCase.DemoTest1 (0 ms)
//[ RUN ] DemoTestCase.DemoTest2
//[ OK ] DemoTestCase.DemoTest2 (0 ms)
//[ RUN ] DemoTestCase.DemoTest3
//[ OK ] DemoTestCase.DemoTest3 (0 ms)
//[----------] 3 tests from DemoTestCase (0 ms total)
//
//[----------] Global test environment tear-down
//[==========] 3 tests from 1 test case ran. (0 ms total)
//[ PASSED ] 3 tests.
public void testAFewTestCasesInTheOnlyTestSuites() {
mockModelUpdater.skipCalls("setTestStatus");
mockModelUpdater.skipCalls("setTestingTime");
mockModelUpdater.enterTestSuite("DemoTestCase");
mockModelUpdater.enterTestCase("DemoTest1");
mockModelUpdater.exitTestCase();
mockModelUpdater.enterTestCase("DemoTest2");
mockModelUpdater.exitTestCase();
mockModelUpdater.enterTestCase("DemoTest3");
mockModelUpdater.exitTestCase();
mockModelUpdater.exitTestSuite();
}
//Running main() from gtest_main.cc
//[==========] Running 2 tests from 2 test cases.
//[----------] Global test environment set-up.
//[----------] 1 test from DemoTestCase
//[ RUN ] DemoTestCase.DemoTest
//[ OK ] DemoTestCase.DemoTest (0 ms)
//[----------] 1 test from DemoTestCase (0 ms total)
//
//[----------] 1 test from DemoTestCase2
//[ RUN ] DemoTestCase2.DemoTest2
//[ OK ] DemoTestCase2.DemoTest2 (0 ms)
//[----------] 1 test from DemoTestCase2 (0 ms total)
//
//[----------] Global test environment tear-down
//[==========] 2 tests from 2 test cases ran. (0 ms total)
//[ PASSED ] 2 tests.
public void testTheOnlyTestCasesInAFewTestSuites() {
mockModelUpdater.skipCalls("setTestStatus");
mockModelUpdater.skipCalls("setTestingTime");
mockModelUpdater.enterTestSuite("DemoTestCase");
mockModelUpdater.enterTestCase("DemoTest");
mockModelUpdater.exitTestCase();
mockModelUpdater.exitTestSuite();
mockModelUpdater.enterTestSuite("DemoTestCase2");
mockModelUpdater.enterTestCase("DemoTest2");
mockModelUpdater.exitTestCase();
mockModelUpdater.exitTestSuite();
}
//Running main() from gtest_main.cc
//[==========] Running 4 tests from 2 test cases.
//[----------] Global test environment set-up.
//[----------] 2 tests from DemoTestCase1
//[ RUN ] DemoTestCase1.DemoTest1
//[ OK ] DemoTestCase1.DemoTest1 (0 ms)
//[ RUN ] DemoTestCase1.DemoTest2
//[ OK ] DemoTestCase1.DemoTest2 (0 ms)
//[----------] 2 tests from DemoTestCase1 (0 ms total)
//
//[----------] 2 tests from DemoTestCase2
//[ RUN ] DemoTestCase2.DemoTest1
//[ OK ] DemoTestCase2.DemoTest1 (0 ms)
//[ RUN ] DemoTestCase2.DemoTest2
//[ OK ] DemoTestCase2.DemoTest2 (0 ms)
//[----------] 2 tests from DemoTestCase2 (0 ms total)
//
//[----------] Global test environment tear-down
//[==========] 4 tests from 2 test cases ran. (0 ms total)
//[ PASSED ] 4 tests.
public void testAFewTestCasesWithTheSameNameInDifferentTestSuites() {
mockModelUpdater.skipCalls("setTestStatus");
mockModelUpdater.skipCalls("setTestingTime");
mockModelUpdater.enterTestSuite("DemoTestCase1");
mockModelUpdater.enterTestCase("DemoTest1");
mockModelUpdater.exitTestCase();
mockModelUpdater.enterTestCase("DemoTest2");
mockModelUpdater.exitTestCase();
mockModelUpdater.exitTestSuite();
mockModelUpdater.enterTestSuite("DemoTestCase2");
mockModelUpdater.enterTestCase("DemoTest1");
mockModelUpdater.exitTestCase();
mockModelUpdater.enterTestCase("DemoTest2");
mockModelUpdater.exitTestCase();
mockModelUpdater.exitTestSuite();
}
//Running main() from gtest_main.cc
//[==========] Running 4 tests from 1 test case.
//[----------] Global test environment set-up.
//[----------] 4 tests from DemoTestCase
//[ RUN ] DemoTestCase.TestPass
//[ OK ] DemoTestCase.TestPass (0 ms)
//[ RUN ] DemoTestCase.TestFail
//demo_file.cc:38: Failure
//Value of: 2
//Expected: 1
//[ FAILED ] DemoTestCase.TestFail (0 ms)
//[ RUN ] DemoTestCase.TestAFewFails
//demo_file.cc:42: Failure
//Value of: 2
//Expected: 1
//demo_file.cc:43: Failure
//Value of: 2
//Expected: 1
//[ FAILED ] DemoTestCase.TestAFewFails (0 ms)
//[ RUN ] DemoTestCase.TestCustomFails
//demo_file.cc:47: Failure
//Failed
//Custom fatal fail!
//demo_file.cc:48: Failure
//Failed
//Another custom fatal fail!
//demo_file.cc:49: Failure
//Failed
//Yet another custom fatal fail!
//[ FAILED ] DemoTestCase.TestCustomFails (0 ms)
//[----------] 4 tests from DemoTestCase (0 ms total)
//
//[----------] Global test environment tear-down
//[==========] 4 tests from 1 test case ran. (1 ms total)
//[ PASSED ] 1 test.
//[ FAILED ] 3 tests, listed below:
//[ FAILED ] DemoTestCase.TestFail
//[ FAILED ] DemoTestCase.TestAFewFails
//[ FAILED ] DemoTestCase.TestCustomFails
//
// 3 FAILED TESTS
public void testDifferentTestStatuses() {
mockModelUpdater.skipCalls("enterTestSuite");
mockModelUpdater.skipCalls("exitTestSuite");
mockModelUpdater.skipCalls("setTestingTime");
mockModelUpdater.enterTestCase("TestPass");
mockModelUpdater.setTestStatus(ITestItem.Status.Passed);
mockModelUpdater.exitTestCase();
mockModelUpdater.enterTestCase("TestFail");
mockModelUpdater.addTestMessage("demo_file.cc", 38, ITestMessage.Level.Error, "Value of: 2"+EOL+"Expected: 1");
mockModelUpdater.setTestStatus(ITestItem.Status.Failed);
mockModelUpdater.exitTestCase();
mockModelUpdater.enterTestCase("TestAFewFails");
mockModelUpdater.addTestMessage("demo_file.cc", 42, ITestMessage.Level.Error, "Value of: 2"+EOL+"Expected: 1");
mockModelUpdater.addTestMessage("demo_file.cc", 43, ITestMessage.Level.Error, "Value of: 2"+EOL+"Expected: 1");
mockModelUpdater.setTestStatus(ITestItem.Status.Failed);
mockModelUpdater.exitTestCase();
mockModelUpdater.enterTestCase("TestCustomFails");
mockModelUpdater.addTestMessage("demo_file.cc", 47, ITestMessage.Level.Error, "Failed"+EOL+"Custom fatal fail!");
mockModelUpdater.addTestMessage("demo_file.cc", 48, ITestMessage.Level.Error, "Failed"+EOL+"Another custom fatal fail!");
mockModelUpdater.addTestMessage("demo_file.cc", 49, ITestMessage.Level.Error, "Failed"+EOL+"Yet another custom fatal fail!");
mockModelUpdater.setTestStatus(ITestItem.Status.Failed);
mockModelUpdater.exitTestCase();
}
//Running main() from gtest_main.cc
//[==========] Running 2 tests from 1 test case.
//[----------] Global test environment set-up.
//[----------] 2 tests from DemoTestCase
//[ RUN ] DemoTestCase.TestWithSimpleTrace
//demo_file.cc:36: Failure
//Value of: 2
//Expected: 1
//Google Test trace:
//demo_file.cc:41: Trace point #2 in TestWithSimpleTrace
//demo_file.cc:40: Trace point #1 in TestWithSimpleTrace
//[ FAILED ] DemoTestCase.TestWithSimpleTrace (1 ms)
//[ RUN ] DemoTestCase.TestTraceForMultipleFails
//demo_file.cc:36: Failure
//Value of: 2
//Expected: 1
//Google Test trace:
//demo_file.cc:46: Trace point #1 in TestTraceForMultipleFails
//demo_file.cc:36: Failure
//Value of: 2
//Expected: 1
//Google Test trace:
//demo_file.cc:48: Trace point #2 in TestTraceForMultipleFails
//demo_file.cc:46: Trace point #1 in TestTraceForMultipleFails
//[ FAILED ] DemoTestCase.TestTraceForMultipleFails (0 ms)
//[----------] 2 tests from DemoTestCase (1 ms total)
//
//[----------] Global test environment tear-down
//[==========] 2 tests from 1 test case ran. (1 ms total)
//[ PASSED ] 0 tests.
//[ FAILED ] 2 tests, listed below:
//[ FAILED ] DemoTestCase.TestWithSimpleTrace
//[ FAILED ] DemoTestCase.TestTraceForMultipleFails
//
// 2 FAILED TESTS
public void testScopedTraceSupport() {
mockModelUpdater.skipCalls("enterTestSuite");
mockModelUpdater.skipCalls("exitTestSuite");
mockModelUpdater.skipCalls("setTestingTime");
mockModelUpdater.skipCalls("setTestStatus");
mockModelUpdater.enterTestCase("TestWithSimpleTrace");
mockModelUpdater.addTestMessage("demo_file.cc", 36, ITestMessage.Level.Error, "Value of: 2"+EOL+"Expected: 1");
mockModelUpdater.addTestMessage("demo_file.cc", 41, ITestMessage.Level.Info, "Trace point #2 in TestWithSimpleTrace");
mockModelUpdater.addTestMessage("demo_file.cc", 40, ITestMessage.Level.Info, "Trace point #1 in TestWithSimpleTrace");
mockModelUpdater.exitTestCase();
mockModelUpdater.enterTestCase("TestTraceForMultipleFails");
mockModelUpdater.addTestMessage("demo_file.cc", 36, ITestMessage.Level.Error, "Value of: 2"+EOL+"Expected: 1");
mockModelUpdater.addTestMessage("demo_file.cc", 46, ITestMessage.Level.Info, "Trace point #1 in TestTraceForMultipleFails");
mockModelUpdater.addTestMessage("demo_file.cc", 36, ITestMessage.Level.Error, "Value of: 2"+EOL+"Expected: 1");
mockModelUpdater.addTestMessage("demo_file.cc", 48, ITestMessage.Level.Info, "Trace point #2 in TestTraceForMultipleFails");
mockModelUpdater.addTestMessage("demo_file.cc", 46, ITestMessage.Level.Info, "Trace point #1 in TestTraceForMultipleFails");
mockModelUpdater.exitTestCase();
}
//Running main() from gtest_main.cc
//[==========] Running 1 test from 1 test case.
//[----------] Global test environment set-up.
//[----------] 1 test from DemoTestCase
//[ RUN ] DemoTestCase.TestMessageLocationFormats
//demo_file_name2.cpp:40: Failure
//Standard format with file name & line number
//unknown file:41: Failure
//Standard format with unknown file name
//demo_file_name2.cpp(42): Failure
//VS-like format with file name & line number
//unknown file(43): Failure
//VS-like format with unknown file name
//demo_file_name2.cpp: Failure
//Location with unknown line number
//unknown file: Failure
//Location with unknown file name & line number
//[ FAILED ] DemoTestCase.TestMessageLocationFormats (1 ms)
//[----------] 1 test from DemoTestCase (1 ms total)
//
//[----------] Global test environment tear-down
//[==========] 1 test from 1 test case ran. (1 ms total)
//[ PASSED ] 0 tests.
//[ FAILED ] 1 test, listed below:
//[ FAILED ] DemoTestCase.TestMessageLocationFormats
//
// 1 FAILED TEST
public void testDifferentLocationsFormatsWithStandardMessageFormat() {
mockModelUpdater.skipCalls("enterTestSuite");
mockModelUpdater.skipCalls("exitTestSuite");
mockModelUpdater.skipCalls("enterTestCase");
mockModelUpdater.skipCalls("exitTestCase");
mockModelUpdater.skipCalls("setTestingTime");
mockModelUpdater.skipCalls("setTestStatus");
mockModelUpdater.addTestMessage("demo_file_name2.cpp", 40, ITestMessage.Level.Error, "Standard format with file name & line number");
mockModelUpdater.addTestMessage(DEFAULT_LOCATION_FILE, 41, ITestMessage.Level.Error, "Standard format with unknown file name");
mockModelUpdater.addTestMessage("demo_file_name2.cpp", 42, ITestMessage.Level.Error, "VS-like format with file name & line number");
mockModelUpdater.addTestMessage(DEFAULT_LOCATION_FILE, 43, ITestMessage.Level.Error, "VS-like format with unknown file name");
mockModelUpdater.addTestMessage("demo_file_name2.cpp", DEFAULT_LOCATION_LINE, ITestMessage.Level.Error, "Location with unknown line number");
mockModelUpdater.addTestMessage(DEFAULT_LOCATION_FILE, DEFAULT_LOCATION_LINE, ITestMessage.Level.Error, "Location with unknown file name & line number");
}
//Running main() from gtest_main.cc
//[==========] Running 1 test from 1 test case.
//[----------] Global test environment set-up.
//[----------] 1 test from DemoTestCase
//[ RUN ] DemoTestCase.TestMessageLocationFormats
//demo_file_name2.cpp:40: error: Standard format with file name & line number
//unknown file:41: error: Standard format with unknown file name
//demo_file_name2.cpp(42): error: VS-like format with file name & line number
//unknown file(43): error: VS-like format with unknown file name
//demo_file_name2.cpp: error: Location with unknown line number
//unknown file: error: Location with unknown file name & line number
//[ FAILED ] DemoTestCase.TestMessageLocationFormats (1 ms)
//[----------] 1 test from DemoTestCase (1 ms total)
//
//[----------] Global test environment tear-down
//[==========] 1 test from 1 test case ran. (1 ms total)
//[ PASSED ] 0 tests.
//[ FAILED ] 1 test, listed below:
//[ FAILED ] DemoTestCase.TestMessageLocationFormats
//
// 1 FAILED TEST
public void testDifferentLocationsFormatsWithVSLikeMessageFormat() {
mockModelUpdater.skipCalls("enterTestSuite");
mockModelUpdater.skipCalls("exitTestSuite");
mockModelUpdater.skipCalls("enterTestCase");
mockModelUpdater.skipCalls("exitTestCase");
mockModelUpdater.skipCalls("setTestingTime");
mockModelUpdater.skipCalls("setTestStatus");
mockModelUpdater.addTestMessage("demo_file_name2.cpp", 40, ITestMessage.Level.Error, "Standard format with file name & line number");
mockModelUpdater.addTestMessage(DEFAULT_LOCATION_FILE, 41, ITestMessage.Level.Error, "Standard format with unknown file name");
mockModelUpdater.addTestMessage("demo_file_name2.cpp", 42, ITestMessage.Level.Error, "VS-like format with file name & line number");
mockModelUpdater.addTestMessage(DEFAULT_LOCATION_FILE, 43, ITestMessage.Level.Error, "VS-like format with unknown file name");
mockModelUpdater.addTestMessage("demo_file_name2.cpp", DEFAULT_LOCATION_LINE, ITestMessage.Level.Error, "Location with unknown line number");
mockModelUpdater.addTestMessage(DEFAULT_LOCATION_FILE, DEFAULT_LOCATION_LINE, ITestMessage.Level.Error, "Location with unknown file name & line number");
}
//Running main() from gtest_main.cc
//[==========] Running 1 test from 1 test case.
//[----------] Global test environment set-up.
//[----------] 1 test from DemoTestCase
//[ RUN ] DemoTestCase.TestMultiLineMessage
//demo_file.cc:40: Failure
//Line 1
//Line 2
//Line 3
//[ FAILED ] DemoTestCase.TestMultiLineMessage (0 ms)
//[----------] 1 test from DemoTestCase (0 ms total)
//
//[----------] Global test environment tear-down
//[==========] 1 test from 1 test case ran. (0 ms total)
//[ PASSED ] 0 tests.
//[ FAILED ] 1 test, listed below:
//[ FAILED ] DemoTestCase.TestMultiLineMessage
//
// 1 FAILED TEST
public void testMultiLineMessage() {
mockModelUpdater.skipCalls("enterTestSuite");
mockModelUpdater.skipCalls("exitTestSuite");
mockModelUpdater.skipCalls("setTestingTime");
mockModelUpdater.skipCalls("setTestStatus");
mockModelUpdater.enterTestCase("TestMultiLineMessage");
mockModelUpdater.addTestMessage("demo_file.cc", 40, ITestMessage.Level.Error, "Line 1"+EOL+"Line 2"+EOL+"Line 3");
mockModelUpdater.exitTestCase();
}
//Running main() from gtest_main.cc
//[==========] Running 2 tests from 2 test cases.
//[----------] Global test environment set-up.
//[----------] 1 test from DemoTestCase1
//[ RUN ] DemoTestCase1.Test1
//unknown file: Failure
//Unknown C++ exception thrown in the test body.
//[ FAILED ] DemoTestCase1.Test1 (1000 ms)
//[----------] 1 test from DemoTestCase1 (1000 ms total)
//
//[----------] 1 test from DemoTestCase2
//[ RUN ] DemoTestCase2.Test2
//[ OK ] DemoTestCase2.Test2 (2000 ms)
//[----------] 1 test from DemoTestCase2 (2000 ms total)
//
//[----------] Global test environment tear-down
//[==========] 2 tests from 2 test cases ran. (3000 ms total)
//[ PASSED ] 1 test.
//[ FAILED ] 1 test, listed below:
//[ FAILED ] DemoTestCase1.Test1
//
// 1 FAILED TEST
public void testTestingTimeSupport() {
mockModelUpdater.skipCalls("enterTestSuite");
mockModelUpdater.skipCalls("exitTestSuite");
mockModelUpdater.skipCalls("setTestStatus");
mockModelUpdater.skipCalls("addTestMessage");
mockModelUpdater.enterTestCase("Test1");
mockModelUpdater.setTestingTime(1000);
mockModelUpdater.exitTestCase();
mockModelUpdater.enterTestCase("Test2");
mockModelUpdater.setTestingTime(2000);
mockModelUpdater.exitTestCase();
}
//Running main() from gtest_main.cc
//[==========] Running 3 tests from 1 test case.
//[----------] Global test environment set-up.
//[----------] 3 tests from Inst/DemoTestCase
//[ RUN ] Inst/DemoTestCase.Test/0
//demo_file.cc:50: Failure
//Failed
//Param1
//[ FAILED ] Inst/DemoTestCase.Test/0, where GetParam() = "Param1" (0 ms)
//[ RUN ] Inst/DemoTestCase.Test/1
//[ OK ] Inst/DemoTestCase.Test/1 (0 ms)
//[ RUN ] Inst/DemoTestCase.Test/2
//demo_file.cc:50: Failure
//Failed
//Param3
//[ FAILED ] Inst/DemoTestCase.Test/2, where GetParam() = "Param3" (0 ms)
//[----------] 3 tests from Inst/DemoTestCase (0 ms total)
//
//[----------] Global test environment tear-down
//[==========] 3 tests from 1 test case ran. (0 ms total)
//[ PASSED ] 1 test.
//[ FAILED ] 2 tests, listed below:
//[ FAILED ] Inst/DemoTestCase.Test/0, where GetParam() = "Param1"
//[ FAILED ] Inst/DemoTestCase.Test/2, where GetParam() = "Param3"
//
// 2 FAILED TESTS
public void testParametrizedTestsSupport() {
mockModelUpdater.enterTestSuite("Inst/DemoTestCase");
mockModelUpdater.enterTestCase("Test/0");
mockModelUpdater.addTestMessage("demo_file.cc", 50, ITestMessage.Level.Error, "Failed"+EOL+"Param1");
mockModelUpdater.addTestMessage(DEFAULT_LOCATION_FILE, DEFAULT_LOCATION_LINE, ITestMessage.Level.Info, "Instantiated with GetParam() = \"Param1\"");
mockModelUpdater.setTestingTime(0);
mockModelUpdater.setTestStatus(ITestItem.Status.Failed);
mockModelUpdater.exitTestCase();
mockModelUpdater.enterTestCase("Test/1");
mockModelUpdater.setTestingTime(0);
mockModelUpdater.setTestStatus(ITestItem.Status.Passed);
mockModelUpdater.exitTestCase();
mockModelUpdater.enterTestCase("Test/2");
mockModelUpdater.addTestMessage("demo_file.cc", 50, ITestMessage.Level.Error, "Failed"+EOL+"Param3");
mockModelUpdater.addTestMessage(DEFAULT_LOCATION_FILE, DEFAULT_LOCATION_LINE, ITestMessage.Level.Info, "Instantiated with GetParam() = \"Param3\"");
mockModelUpdater.setTestingTime(0);
mockModelUpdater.setTestStatus(ITestItem.Status.Failed);
mockModelUpdater.exitTestCase();
mockModelUpdater.exitTestSuite();
}
//Running main() from gtest_main.cc
//[==========] Running 1 test from 1 test case.
//[----------] Global test environment set-up.
//[----------] 1 test from Inst/DemoTestCase
//[ RUN ] Inst/DemoTestCase.Test/0
//demo_file.cc:50: Failure
//Failed
//[ FAILED ] Inst/DemoTestCase.Test/0, where GetParam() = 0x4f50cc (0 ms)
//[----------] 1 test from Inst/DemoTestCase (0 ms total)
//
//[----------] Global test environment tear-down
//[==========] 1 test from 1 test case ran. (0 ms total)
//[ PASSED ] 0 tests.
//[ FAILED ] 1 test, listed below:
//[ FAILED ] Inst/DemoTestCase.Test/0, where GetParam() = 0x4f50cc
//
// 2 FAILED TESTS
public void testParametrizedTestsWithoutQuotesSupport() {
mockModelUpdater.enterTestSuite("Inst/DemoTestCase");
mockModelUpdater.enterTestCase("Test/0");
mockModelUpdater.addTestMessage("demo_file.cc", 50, ITestMessage.Level.Error, "Failed");
mockModelUpdater.addTestMessage(DEFAULT_LOCATION_FILE, DEFAULT_LOCATION_LINE, ITestMessage.Level.Info, "Instantiated with GetParam() = 0x4f50cc");
mockModelUpdater.setTestingTime(0);
mockModelUpdater.setTestStatus(ITestItem.Status.Failed);
mockModelUpdater.exitTestCase();
mockModelUpdater.exitTestSuite();
}
//Running main() from gtest_main.cc
//[==========] Running 3 tests from 3 test cases.
//[----------] Global test environment set-up.
//[----------] 1 test from DemoTestCase/0, where TypeParam = char
//[ RUN ] DemoTestCase/0.Test
//demo_file.cc:60: Failure
//Failed
//char type
//[ FAILED ] DemoTestCase/0.Test, where TypeParam = char (0 ms)
//[----------] 1 test from DemoTestCase/0 (0 ms total)
//
//[----------] 1 test from DemoTestCase/1, where TypeParam = int
//[ RUN ] DemoTestCase/1.Test
//[ OK ] DemoTestCase/1.Test (0 ms)
//[----------] 1 test from DemoTestCase/1 (0 ms total)
//
//[----------] 1 test from DemoTestCase/2, where TypeParam = unsigned int
//[ RUN ] DemoTestCase/2.Test
//demo_file.cc:60: Failure
//Failed
//unsigned int type
//[ FAILED ] DemoTestCase/2.Test, where TypeParam = unsigned int (0 ms)
//[----------] 1 test from DemoTestCase/2 (0 ms total)
//
//[----------] Global test environment tear-down
//[==========] 3 tests from 3 test cases ran. (0 ms total)
//[ PASSED ] 1 test.
//[ FAILED ] 2 tests, listed below:
//[ FAILED ] DemoTestCase/0.Test, where TypeParam = char
//[ FAILED ] DemoTestCase/2.Test, where TypeParam = unsigned int
//
// 2 FAILED TESTS
public void testTypedTestsSupport() {
mockModelUpdater.enterTestSuite("DemoTestCase/0(char)");
mockModelUpdater.enterTestCase("Test");
mockModelUpdater.addTestMessage("demo_file.cc", 60, ITestMessage.Level.Error, "Failed"+EOL+"char type");
mockModelUpdater.setTestingTime(0);
mockModelUpdater.setTestStatus(ITestItem.Status.Failed);
mockModelUpdater.exitTestCase();
mockModelUpdater.exitTestSuite();
mockModelUpdater.enterTestSuite("DemoTestCase/1(int)");
mockModelUpdater.enterTestCase("Test");
mockModelUpdater.setTestingTime(0);
mockModelUpdater.setTestStatus(ITestItem.Status.Passed);
mockModelUpdater.exitTestCase();
mockModelUpdater.exitTestSuite();
mockModelUpdater.enterTestSuite("DemoTestCase/2(unsigned int)");
mockModelUpdater.enterTestCase("Test");
mockModelUpdater.addTestMessage("demo_file.cc", 60, ITestMessage.Level.Error, "Failed"+EOL+"unsigned int type");
mockModelUpdater.setTestingTime(0);
mockModelUpdater.setTestStatus(ITestItem.Status.Failed);
mockModelUpdater.exitTestCase();
mockModelUpdater.exitTestSuite();
}
//Running main() from gtest_main.cc
//Unknown line in the output
//[==========] Running 1 test from 1 test case.
//[----------] Global test environment set-up.
//Another unknown line in the output
//[----------] 1 test from DemoTestCase
//[ RUN ] DemoTestCase.DemoTest
//Yet another unknown line in the output
//[ OK ] DemoTestCase.DemoTest (0 ms)
//[----------] 1 test from DemoTestCase (0 ms total)
//One more unknown line in the output
//
//[----------] Global test environment tear-down
//And one more unknown line in the output
//[==========] 1 test from 1 test case ran. (0 ms total)
//[ PASSED ] 1 test.
public void testAllUnrecognizedLinesShouldBeSkipped() {
mockModelUpdater.enterTestSuite("DemoTestCase");
mockModelUpdater.enterTestCase("DemoTest");
mockModelUpdater.setTestingTime(0);
mockModelUpdater.setTestStatus(ITestItem.Status.Passed);
mockModelUpdater.exitTestCase();
mockModelUpdater.exitTestSuite();
}
//
public void testNoInput() {
// NOTE: The comment above is left blank intentionally
expectTestingException();
}
// This is not an input from a Google Test Module
public void testAbsolutelyIncorrectInput() {
expectTestingException();
}
//Running main() from gtest_main.cc
//[==========] Running 1 test from 1 test case.
//[----------] Global test environment set-up.
//[----------] 1 test from DemoTestCase
//[ RUN ] Not_A_DemoTestCase.DemoTest
public void testUnexpectedOutputEnd() {
mockModelUpdater.skipCalls("enterTestSuite");
mockModelUpdater.skipCalls("enterTestCase");
expectTestingException();
}
//Running main() from gtest_main.cc
//[==========] Running 1 test from 1 test case.
//[----------] Global test environment set-up.
//[----------] 1 test from DemoTestCase
//[ RUN ] Not_A_DemoTestCase.DemoTest
//[ OK ] DemoTestCase.DemoTest (0 ms)
//[----------] 1 test from DemoTestCase (0 ms total)
//
//[----------] Global test environment tear-down
//[==========] 1 test from 1 test case ran. (0 ms total)
//[ PASSED ] 1 test.
public void testTestSuiteNameMismatch1() {
mockModelUpdater.skipCalls("enterTestSuite");
expectTestingException();
}
//Running main() from gtest_main.cc
//[==========] Running 1 test from 1 test case.
//[----------] Global test environment set-up.
//[----------] 1 test from DemoTestCase
//[ RUN ] DemoTestCase.DemoTest
//[ OK ] Not_A_DemoTestCase.DemoTest (0 ms)
//[----------] 1 test from DemoTestCase (0 ms total)
//
//[----------] Global test environment tear-down
//[==========] 1 test from 1 test case ran. (0 ms total)
//[ PASSED ] 1 test.
public void testTestSuiteNameMismatch2() {
mockModelUpdater.skipCalls("enterTestSuite");
mockModelUpdater.skipCalls("enterTestCase");
expectTestingException();
}
//Running main() from gtest_main.cc
//[==========] Running 1 test from 1 test case.
//[----------] Global test environment set-up.
//[----------] 1 test from DemoTestCase
//[ RUN ] DemoTestCase.DemoTest
//[ OK ] DemoTestCase.DemoTest (0 ms)
//[----------] 1 test from Not_A_DemoTestCase (0 ms total)
//
//[----------] Global test environment tear-down
//[==========] 1 test from 1 test case ran. (0 ms total)
//[ PASSED ] 1 test.
public void testTestSuiteNameMismatch3() {
mockModelUpdater.skipCalls("enterTestSuite");
mockModelUpdater.skipCalls("enterTestCase");
mockModelUpdater.skipCalls("setTestingTime");
mockModelUpdater.skipCalls("setTestStatus");
mockModelUpdater.skipCalls("exitTestCase");
expectTestingException();
}
//Running main() from gtest_main.cc
//[==========] Running 1 test from 1 test case.
//[----------] Global test environment set-up.
//[----------] 1 test from DemoTestCase
//[ RUN ] DemoTestCase.DemoTest
//[ OK ] DemoTestCase.NOT_A_DemoTest (0 ms)
//[----------] 1 test from DemoTestCase (0 ms total)
//
//[----------] Global test environment tear-down
//[==========] 1 test from 1 test case ran. (0 ms total)
//[ PASSED ] 1 test.
public void testTestCaseNameMismatch() {
mockModelUpdater.skipCalls("enterTestSuite");
mockModelUpdater.skipCalls("enterTestCase");
expectTestingException();
}
}