67 lines · plain
1// Copyright 2006, Google Inc.2// All rights reserved.3//4// Redistribution and use in source and binary forms, with or without5// modification, are permitted provided that the following conditions are6// met:7//8// * Redistributions of source code must retain the above copyright9// notice, this list of conditions and the following disclaimer.10// * Redistributions in binary form must reproduce the above11// copyright notice, this list of conditions and the following disclaimer12// in the documentation and/or other materials provided with the13// distribution.14// * Neither the name of Google Inc. nor the names of its15// contributors may be used to endorse or promote products derived from16// this software without specific prior written permission.17//18// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS19// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT20// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR21// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT22// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,23// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT24// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,25// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY26// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT27// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE28// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.29 30#include <cstdio>31 32#include "gtest/gtest.h"33 34#if defined(GTEST_OS_ESP8266) || defined(GTEST_OS_ESP32) || \35 (defined(GTEST_OS_NRF52) && defined(ARDUINO))36// Arduino-like platforms: program entry points are setup/loop instead of main.37 38#ifdef GTEST_OS_ESP826639extern "C" {40#endif41 42void setup() { testing::InitGoogleTest(); }43 44void loop() { RUN_ALL_TESTS(); }45 46#ifdef GTEST_OS_ESP826647}48#endif49 50#elif defined(GTEST_OS_QURT)51// QuRT: program entry point is main, but argc/argv are unusable.52 53GTEST_API_ int main() {54 printf("Running main() from %s\n", __FILE__);55 testing::InitGoogleTest();56 return RUN_ALL_TESTS();57}58#else59// Normal platforms: program entry point is main, argc/argv are initialized.60 61GTEST_API_ int main(int argc, char **argv) {62 printf("Running main() from %s\n", __FILE__);63 testing::InitGoogleTest(&argc, argv);64 return RUN_ALL_TESTS();65}66#endif67