mirror of https://gitee.com/Nocallback/dejagnu.git
5 changed files with 111 additions and 3 deletions
@ -0,0 +1,78 @@ |
|||||
|
// Exerciser for Dejagnu C/C++ unit test support library mixed usage
|
||||
|
//
|
||||
|
// Copyright (C) 2022 Free Software Foundation, Inc.
|
||||
|
//
|
||||
|
// This file is part of DejaGnu.
|
||||
|
//
|
||||
|
// DejaGnu 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.
|
||||
|
//
|
||||
|
// DejaGnu 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 DejaGnu; if not, write to the Free Software Foundation,
|
||||
|
// Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
//
|
||||
|
// This file was written by Jacob Bachmeyer.
|
||||
|
|
||||
|
// This version of the program allows verifying that the shared counters
|
||||
|
// between the C API and the C++ API really are shared as documented.
|
||||
|
|
||||
|
#include <stdio.h> |
||||
|
#include <string.h> |
||||
|
|
||||
|
#include <cstring> |
||||
|
#include <iostream> |
||||
|
|
||||
|
#include "dejagnu.h" |
||||
|
|
||||
|
TestState DGT; |
||||
|
|
||||
|
int |
||||
|
main(int argc, char ** argv) |
||||
|
{ |
||||
|
if (argc < 2) { |
||||
|
std::cerr <<"usage: " <<argv[0] <<" <test name>..."<<std::endl |
||||
|
<<"see source for details" <<std::endl; |
||||
|
return 2; |
||||
|
} |
||||
|
|
||||
|
for (int i = 1; i < argc; i++ ) { |
||||
|
if (i & 1) { // alternate with each test on the command line
|
||||
|
if (!std::strcmp("pass", argv[i])) DGT.pass("test"); |
||||
|
else if (!std::strcmp("xpass", argv[i])) DGT.xpass("test"); |
||||
|
else if (!std::strcmp("fail", argv[i])) DGT.fail("test"); |
||||
|
else if (!std::strcmp("xfail", argv[i])) DGT.xfail("test"); |
||||
|
else if (!std::strcmp("untested", argv[i])) DGT.untested("test"); |
||||
|
else if (!std::strcmp("unresolved", argv[i])) DGT.unresolved("test"); |
||||
|
else if (!std::strcmp("unsupported", argv[i])) DGT.unsupported("test"); |
||||
|
else if (!std::strcmp("note", argv[i])) DGT.note("test"); |
||||
|
else { |
||||
|
std::cerr <<argv[0] <<": unknown test `" <<argv[i] <<"'" <<std::endl; |
||||
|
return 2; |
||||
|
} |
||||
|
} else { // use C API for every other test
|
||||
|
if (!strcmp("pass", argv[i])) pass("test"); |
||||
|
else if (!strcmp("xpass", argv[i])) xpass("test"); |
||||
|
else if (!strcmp("fail", argv[i])) fail("test"); |
||||
|
else if (!strcmp("xfail", argv[i])) xfail("test"); |
||||
|
else if (!strcmp("untested", argv[i])) untested("test"); |
||||
|
else if (!strcmp("unresolved", argv[i])) unresolved("test"); |
||||
|
else if (!strcmp("unsupported", argv[i])) unsupported("test"); |
||||
|
else if (!strcmp("note", argv[i])) note("test"); |
||||
|
else { |
||||
|
fprintf(stderr, "%s: unknown test `%s'\n", argv[0], argv[i]); |
||||
|
return 2; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
return 0; |
||||
|
} |
||||
|
|
||||
|
// EOF
|
||||
Loading…
Reference in new issue