/***************************************************************************** * Copyright (c) 2015 Marco Costa * OpenRCT2, an open source clone of Roller Coaster Tycoon 2. * * This file is part of OpenRCT2. * * OpenRCT2 is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, see . *****************************************************************************/ #include "../src/openrct2.h" #include "management/finance_test.h" #include "ride/ride_ratings_test.h" int cmdline_for_test(const char **argv, int argc) { // NOTE Currently all tests are running in a OpenRCT2 setup frame. Tests for the initialisation and disposing should be // separate and independent. int numFailedTests; gOpenRCT2Headless = true; if (openrct2_initialise()) { numFailedTests = run_all_tests(); openrct2_dispose(); } return numFailedTests > 0 ? -1 : 1; } CuSuite* new_suite(void) { CuSuite* suite = CuSuiteNew(); // Test Finance SUITE_ADD_TEST(suite, test_finance_setup); SUITE_ADD_TEST(suite, test_finance_loan_increase); SUITE_ADD_TEST(suite, test_finance_loan_pay_back); // Test Ride SUITE_ADD_TEST(suite, test_ride_ratings_setup); SUITE_ADD_TEST(suite, test_ride_ratings); // Future Tests: // Test X // SUITE_ADD_TEST(suite, test_X_setup); // SUITE_ADD_TEST(suite, test_X_Y); // SUITE_ADD_TEST(suite, test_X_Z); return suite; } int run_all_tests(void) { CuString *output = CuStringNew(); CuSuite* suite = CuSuiteNew(); CuSuiteAddSuite(suite, new_suite()); CuSuiteRun(suite); CuSuiteSummary(suite, output); CuSuiteDetails(suite, output); printf("Test results:\n%s\n", output->buffer); return suite->failCount; }