From 36457093278a06752c44c10bb98e4b1eeab3f792 Mon Sep 17 00:00:00 2001 From: Flavio Cruz Date: Mon, 18 Apr 2016 19:48:50 -0400 Subject: Simple testsuite for MIG. This includes a set of valid and invalid definition files that MIG will try to process. For valid definitions, GCC will compile the stubs to check if valid C code was generated. * configure.ac: Add new test Makefiles. * Makefile.am: Add SUBDIRS. * tests/Makeconf.am: Automake definitions shared by all test subdirectories. * tests/test_lib.sh: Library of functions shared by all test drivers. * tests/good/run_good_test.sh: Script to run valid definition files. * tests/good/Makefile.am: New file. * tests/bad/Makefile.am: New file. * tests/generate-only/Makefile.am: New file. * tests/bad/run_bad_test.sh: Script to run invalid definition files. * tests/generate-only/run_generate_only.sh: Script to run valid definition files that should be generated only. * tests/includes/*.h: Test header files that are included by test stubs. * tests/good/*.defs: Valid definition files where generated stubs can be compiled. * tests/generate_only/*.defs: Valid definition files that can be generated but no compilation should be attempted. * tests/bad/*.defs: Definition files with problems that should be detected by MIG. --- tests/includes/types.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 tests/includes/types.h (limited to 'tests/includes/types.h') diff --git a/tests/includes/types.h b/tests/includes/types.h new file mode 100644 index 0000000..0bb914c --- /dev/null +++ b/tests/includes/types.h @@ -0,0 +1,41 @@ +/* + Copyright (C) 2016 Free Software Foundation, Inc. + + This file is part of GNU MIG. + + GNU MIG 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 2, or (at + your option) any later version. + + GNU MIG 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 GNU MIG. If not, see . */ + +#ifndef TEST_TYPES_H +#define TEST_TYPES_H + +typedef int another_int; + +typedef struct char_struct { + char c1; + char c2; + char c3; + char c4; +} char_struct_t; + +typedef char* string_t; + +static inline int8_t int_to_int8(int n) { + return (int8_t) n; +} + +static inline int int8_to_int(int8_t n) { + return (int) n; +} + +#endif -- cgit v1.2.3