blob: d24de5c171df2e02606484c527866f86b5ea3aa4 [file] [log] [blame]
/*
* Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef WEBRTC_VIDEO_ENGINE_MAIN_TEST_AUTOTEST_INTERFACE_VIE_AUTOTEST_MAIN_H_
#define WEBRTC_VIDEO_ENGINE_MAIN_TEST_AUTOTEST_INTERFACE_VIE_AUTOTEST_MAIN_H_
#include <string>
#include <map>
class ViEAutoTestMain {
public:
ViEAutoTestMain();
// Runs the test according to the specified arguments.
// Pass in --automated to run in automated mode; interactive
// mode is default. All usual googletest flags also apply.
int RunTests(int argc, char** argv);
private:
std::map<int, std::string> index_to_test_method_map_;
static const int kInvalidChoice = -1;
// Starts interactive mode.
bool RunInteractiveMode();
// Prompts the user for a specific test method in the provided test case.
// Returns 0 on success, nonzero otherwise.
int RunSpecificTestCaseIn(const std::string test_case_name);
// Asks the user for a particular test case to run.
int AskUserForTestCase();
// Retrieves a number from the user in the interval
// [min_allowed, max_allowed]. Returns kInvalidChoice on failure.
int AskUserForNumber(int min_allowed, int max_allowed);
// Runs all tests matching the provided filter. * are wildcards.
// Returns the test runner result (0 == OK).
int RunTestMatching(const std::string test_case,
const std::string test_method);
// Runs a non-gtest test case. Choice must be [7,9]. Returns 0 on success.
int RunSpecialTestCase(int choice);
};
#endif // WEBRTC_VIDEO_ENGINE_MAIN_TEST_AUTOTEST_INTERFACE_VIE_AUTOTEST_MAIN_H_