Commit Graph

15 Commits

Author SHA1 Message Date
Seth Jennings 08dbc37c75 add null symbol to inventory files
Add the null symbol to in inventory files.  Before the linked-link
change, the null symbol wasn't included in the inventory.  However,
it is required to be a valid ELF file and should be inventoried and
check for in the test.

Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-05-07 10:16:39 -05:00
Josh Poimboeuf b541692061 test: add test for loading multiple modules 2014-05-05 20:03:57 -05:00
Josh Poimboeuf 1fced0bc3d test: fix unload_all 2014-05-05 20:03:57 -05:00
Josh Poimboeuf df2e2daa92 test: send status messages to log file 2014-05-05 20:03:54 -05:00
Josh Poimboeuf 100f358b1d test: fix custom test error condition check 2014-05-05 17:05:49 -05:00
Josh Poimboeuf bcbc9d3109 test: make .init sections can't be changed 2014-05-05 17:05:49 -05:00
Josh Poimboeuf 7c60dcf2a3 test: make output messages easier to read 2014-05-05 17:05:49 -05:00
Josh Poimboeuf 46786dad93 test: add custom test for kpatch replace 2014-05-05 17:05:44 -05:00
Josh Poimboeuf 757120d8a0 test: add meminfo-cmdline test 2014-05-05 16:05:00 -05:00
Josh Poimboeuf a0c9aff4cc test: fix uninitialized skip variable 2014-05-05 16:05:00 -05:00
Josh Poimboeuf 3ae6bc46ff test: add cmdline-string test 2014-05-05 16:05:00 -05:00
Josh Poimboeuf d3aee7c734 test: test 'kpatch reload' and cleanup between tests 2014-05-05 16:04:58 -05:00
Josh Poimboeuf e19b0ad978 test: make load/unload errors fatal
No need to accumulate errors if the load or unload fails.  Leaving the
testprog failure non-fatal so that the test will then call unload to
clean up after itself.
2014-04-28 13:32:00 -05:00
Josh Poimboeuf 0d2ab160fe create integration test framework
This is a basic integration test framework for kpatch, which tests
building, loading, and unloading patches, as well as any other related
custom tests.

The kpatch-test script looks for test input files in the
tests/integration directory.  It expects certain file naming
conventions:

- foo.patch - patch that should build successfully

- bar-FAIL.patch - patch that should fail to build

- foo-LOADED.test - executable which tests whether the foo.patch module
  is loaded.  It will be used to test that loading/unloading the patch
  module works as expected.

Any other *.test files will be executed after all the patch modules have
been built from the *.patch files.  They can be used for more custom
tests above and beyond the simple loading and unloading tests.

I just have one test here, but many more to come eventually.  I'm
constantly doing manual testing of patches and am planning on automating
them with this framework.
2014-04-26 16:23:05 -05:00
Seth Jennings 0cbb7cf5ee add automated testing system
This commit introduces a simple automated testing system
with 3 simple testcase.

For each test case there is a .c, a .patch, and a .inventory
file.  The .c is compiled, using the flags from the kflags file,
to create the original object.  The .c file is then patched
with the .patch file and rebuilt to create the patched object.
The files are then analyzed by the differencing tool and an
output object is generated with a .inventory file that lists
the sections and symbol included in the output object.  That
inventory file is then compared to the .inventory file for
that testcase.  If they are the same, the test passes. If
not, the differences in the inventory files are displayed,
and the test fails.

Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-03-10 14:36:11 -05:00