lib: fix igt_exit assert when only listing subtests.

Ooops. Reported by Paulo. Also add a new testcase for make check to
make sure this actually works.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Daniel Vetter 2013-11-01 18:21:08 +01:00
parent 9e21c255e7
commit e14596a6d0
4 changed files with 46 additions and 1 deletions

View File

@ -1034,6 +1034,8 @@ void __igt_fail_assert(int exitcode, const char *file,
void igt_exit(void)
{
igt_exit_called = true;
if (igt_only_list_subtests())
exit(0);
@ -1042,7 +1044,6 @@ void igt_exit(void)
/* Calling this without calling one of the above is a failure */
assert(skipped_one || succeeded_one || failed_one);
igt_exit_called = true;
if (failed_one)
exit(igt_exitcode);

1
tests/.gitignore vendored
View File

@ -97,6 +97,7 @@ getclient
getstats
getversion
igt_fork_helper
igt_list_only
kms_addfb
kms_cursor_crc
kms_flip

View File

@ -160,6 +160,7 @@ kernel_tests = \
TESTS_testsuite = \
igt_fork_helper \
igt_list_only \
$(NULL)
TESTS = \

42
tests/igt_list_only.c Normal file
View File

@ -0,0 +1,42 @@
/*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*
* Authors:
* Daniel Vetter <daniel.vetter@ffwll.ch>
*
*/
#include "drmtest.h"
int main(int argc, char **argv)
{
char prog[] = "igt_list_only";
char arg[] = "--list-subtests";
char *fake_argv[] = {prog, arg};
igt_subtest_init(2, fake_argv);
igt_subtest("A")
;
igt_exit();
}