Program for the water play project for the course Software Testing Practical 2016 given at the VU University
Dependencies: mbed DRV88255 TextLCD Ping mbed-rtos
Diff: testing.cpp
- Revision:
- 31:1c50d2d8c155
- Parent:
- 30:cf12566013a5
- Child:
- 36:8aeb014bd651
--- a/testing.cpp Tue Jun 14 10:26:03 2016 +0000 +++ b/testing.cpp Tue Jun 14 10:51:15 2016 +0000 @@ -7,7 +7,7 @@ #define NUMBER_OF_SEC_BEFORE_CRITICAL_ALARM 30 #define NUMBER_OF_SEC_BEFORE_UNDESIRED_ALARM 300 -void TestCase::assertTrue(bool b, const char *error) { +void TestCase::assert(bool b, const char *error) { if(!b) { printf("[%s] ASSERTION FAILED: %s\r\n", this->name, error); this->failed = true; @@ -43,6 +43,17 @@ MOCK(leak_critical_mock, -1-(t/4000.0)); ALARM_TEST(testAlarmWaterLeakCritical, temp_mock_steady, salt_mock_steady, leak_critical_mock, NUMBER_OF_SEC_BEFORE_UNDESIRED_ALARM+1); +MOCK(salinity_mock1, 3.1+(t*0.00001)); +ALARM_TEST(testSalinityLowRangeAlarm, temp_mock_steady, salinity_mock1, prox_mock_steady, NUMBER_OF_SEC_BEFORE_UNDESIRED_ALARM+1); + +MOCK(salinity_mock2, 9.1+(t*0.00001)); +ALARM_TEST(testSalinityHighRangeAlarm, temp_mock_steady, salinity_mock2, prox_mock_steady, NUMBER_OF_SEC_BEFORE_UNDESIRED_ALARM+1); + +MOCK(salinity_mock3, 2.9-(t*0.00001)); +ALARM_TEST(testSalinityDangerousLowAlarm, temp_mock_steady, salinity_mock3, prox_mock_steady, NUMBER_OF_SEC_BEFORE_CRITICAL_ALARM+1); + +MOCK(salinity_mock4, 12.1+(t*0.00001)); +ALARM_TEST(testSalinityDangerousHighAlarm, temp_mock_steady, salinity_mock4, prox_mock_steady, NUMBER_OF_SEC_BEFORE_CRITICAL_ALARM+1); bool testTemperatureHeater(TestCase *tc) { // TODO @@ -52,22 +63,29 @@ - - - - - int test_main() { - TestCase("Test if alarm is raised when temp > 40 for 30 seconds", testTempDangerousHighAlarm); - TestCase("Test if alarm is raised when temp < 30 for 30 seconds", testTempDangerousLowAlarm); - TestCase("Test if alarm is raised when temp > 30 and < 32 for 300 seconds", testTempLowRangeAlarm); - TestCase("Test if alarm is raised when temp > 38 and < 40 for 300 seconds", testTempHighRangeAlarm); - //TestCase("Test if heater gets enabled at < 32 and disabled at 32+", testTemperatureHeater); + + START_TESTS(); + + TESTCASE("Test if alarm is raised when temp > 40 for 30 seconds", testTempDangerousHighAlarm); + TESTCASE("Test if alarm is raised when temp < 30 for 30 seconds", testTempDangerousLowAlarm); + TESTCASE("Test if alarm is raised when temp > 30 and < 32 for 5 minutes", testTempLowRangeAlarm); + TESTCASE("Test if alarm is raised when temp > 38 and < 40 for 5 minutes", testTempHighRangeAlarm); - TestCase("Test if alarm is raised when water tank level in range 900-1000 ml for 5 minutes", testAlarmWaterOverflowUndesired); - TestCase("Test if alarm is raised when water tank level is 1001 for 30 seconds", testAlarmWaterOverflowCritical); - TestCase("Test if alarm is raised when water tank level is in range 0-100 ml for 5 minutes", testAlarmWaterLeakUndesired); - TestCase("Test if alarm is raised when water tank level is < 0 for 30 seconds", testAlarmWaterLeakCritical); + TESTCASE("Test if alarm is raised when salinity > 3 and < 6 for 5 minutes", testSalinityLowRangeAlarm); + TESTCASE("Test if alarm is raised when salinity > 9 and < 12 for 5 minutes", testSalinityHighRangeAlarm); + TESTCASE("Test if alarm is raised when salinity < 3 for 30 seconds", testSalinityDangerousLowAlarm); + TESTCASE("Test if alarm is raised when salinity > 12 for 30 seconds", testSalinityDangerousHighAlarm); + + // TODO + //TESTCASE("Test if heater gets enabled at < 32 and disabled at 32+", testTemperatureHeater); + + TESTCASE("Test if alarm is raised when water tank level in range 900-1000 ml for 5 minutes", testAlarmWaterOverflowUndesired); + TESTCASE("Test if alarm is raised when water tank level is 1001 for 30 seconds", testAlarmWaterOverflowCritical); + TESTCASE("Test if alarm is raised when water tank level is in range 0-100 ml for 5 minutes", testAlarmWaterLeakUndesired); + TESTCASE("Test if alarm is raised when water tank level is < 0 for 30 seconds", testAlarmWaterLeakCritical); + + END_TESTS(); return 0; } \ No newline at end of file