You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

main.cpp 1.5 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /**
  2. * \file test/src/main.cpp
  3. *
  4. * This file is part of MegBrain, a deep learning framework developed by Megvii.
  5. *
  6. * \copyright Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
  7. *
  8. */
  9. #include "./rng_seed.h"
  10. #include "megbrain/comp_node.h"
  11. #include "megbrain/test/helper.h"
  12. #include <gmock/gmock.h>
  13. #include <gtest/gtest.h>
  14. #include <cstdlib>
  15. extern "C" int gtest_main(int argc, char** argv) {
  16. if (getenv("MGB_TEST_USECPU")) {
  17. mgb::CompNode::Locator::set_unspec_device_type(mgb::CompNode::DeviceType::CPU);
  18. }
  19. if (getenv("MGB_TEST_NO_LOG")) {
  20. mgb::set_log_level(mgb::LogLevel::ERROR);
  21. }
  22. #ifdef __linux__
  23. if (getenv("MGB_TEST_WAIT_GDB")) {
  24. printf("wait gdb attach: pid: %d ", getpid());
  25. getchar();
  26. }
  27. #endif
  28. auto&& listeners = ::testing::UnitTest::GetInstance()->listeners();
  29. MGB_TRY {
  30. srand(time(nullptr));
  31. ::testing::InitGoogleMock(&argc, argv);
  32. listeners.Append(&mgb::RNGSeedManager::inst());
  33. auto rst = RUN_ALL_TESTS();
  34. mgb::CompNode::finalize();
  35. listeners.Release(&mgb::RNGSeedManager::inst());
  36. return rst;
  37. }
  38. MGB_CATCH(std::exception & exc, {
  39. mgb_log_warn("uncaught exception: %s", exc.what());
  40. });
  41. listeners.Release(&mgb::RNGSeedManager::inst());
  42. return 0;
  43. }
  44. #if !MGB_NO_MAIN
  45. int main(int argc, char** argv) {
  46. return gtest_main(argc, argv);
  47. }
  48. #endif
  49. // vim: syntax=cpp.doxygen foldmethod=marker foldmarker=f{{{,f}}}