summaryrefslogtreecommitdiffstats
path: root/test/parser
Commit message (Collapse)AuthorAgeFilesLines
* discover/yaboot: implement default optionsJeremy Kerr2013-08-074-0/+47
| | | | Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* discover/yaboot: fix device parsingJeremy Kerr2013-08-073-9/+82
| | | | | | | | | | | | | | | A couple of fixes for yaboot's device-handling code. Firstly, we need to use 'device=' rather than 'root=', as the latter is purely for ybin, to define where the yaboot binary goes. Secondly, we need to respect global and option-specific device= parameters. To do this, we keep all boot_image and initrd strings in the state, and create the actual resources in yaboot_finish. Add a test for all override cases, and fix the incorrect boot= parsing in the rh8 test. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* discover/yaboot: Allow all image options to be overridden by global optionsJeremy Kerr2013-08-072-0/+36
| | | | | | | | | | All of the image options should be overridable by global options. Instead of building the boot_args during yaboot_process_pair, we add discovered data into the state struct, then create the boot args from this data during yaboot_finish Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* parser/yaboot: Fix check for image presenceJeremy Kerr2013-07-312-0/+32
| | | | | | | | | | In the cleanup of yaboot option state, 3fb8fb6fb, we change from checking opt->boot_image to opt, to indicate that we're parsing an image section. We missed one check, which is causing a segfault due to the null opt. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* automake: Add $(EXEEXT) to .ro objectsGeoff Levand2013-07-231-1/+1
| | | | Signed-off-by: Geoff Levand <geoff@infradead.org>
* test/parser: Add pxe testsJeremy Kerr2013-07-233-1/+72
| | | | | | | Add a couple of tests to verify the pxe parser, particularly the different styles of initrd handling. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Add check_resolved_url_resourceJeremy Kerr2013-07-232-0/+28
| | | | | | Add a check for external URL resources. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Add test_set_conf_source()Jeremy Kerr2013-07-042-0/+7
| | | | | | | For non-local parsers (ie, PXE), we need to have the conf_url set. This change adds a function to provide the originating URL. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* discover: Fix automake warningsGeoff Levand2013-06-301-5/+4
| | | | | | | | | | | | | Change the Makfile.am relocatable output files from automake _LIBRARIES to automake _PROGRAMS. Also, change the output file name extension from .o to .ro to better show these are relocatable files. Fixes automake warnings like these: discover/Makefile.am: `libparser.o' is not a standard library name discover/Makefile.am: did you mean `libparser.a'? Signed-off-by: Geoff Levand <geoff@infradead.org>
* test/parser: Cleanup Makefile.amGeoff Levand2013-06-301-30/+34
| | | | | | | General cleanup of Makefile.am. This cleanup should retain the same makefile behavior. Signed-off-by: Geoff Levand <geoff@infradead.org>
* discover: implement default bootingJeremy Kerr2013-06-241-1/+1
| | | | | | | When we see a boot option with is_default set, store it in the handler and register a timeout waiter. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* autotools: Fix make maintainer-cleanGeoff Levand2013-05-291-0/+2
| | | | | | Fixes to make maintainer-clean work properly. Signed-off-by: Geoff Levand <geoff@infradead.org>
* test/parser: Remove gawk specificsGeoff Levand2013-05-292-2/+2
| | | | | | | Remove the GNU awk specifics to allow the use of a standard awk program. Fixes build errors on older distros. Signed-off-by: Geoff Levand <geoff@infradead.org>
* test/parser: cleanup parser allocations on exitJeremy Kerr2013-05-201-0/+8
| | | | | | | | | | | | | | | | | | | | | | | We should talloc_free the parser list once we're done, enabling valgrind's leak check. Before: [jk@pablo parser]$ valgrind ./test-null ... ==9330== HEAP SUMMARY: ==9330== in use at exit: 288 bytes in 3 blocks ==9330== total heap usage: 11 allocs, 8 frees, 1,177 bytes allocated After: [jk@pablo parser]$ valgrind ./test-null ... ==9940== HEAP SUMMARY: ==9940== in use at exit: 0 bytes in 0 blocks ==9940== total heap usage: 11 allocs, 11 frees, 1,177 bytes allocated ==9940== ==9940== All heap blocks were freed -- no leaks are possible Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Add check_not_present_resourceGeoff Levand2013-05-184-0/+23
| | | | | | | | | | | Add a new routine check_not_present_resource() to check that a resource is not present. This is typically used to check that an initrd entry has not been found. Also add any needed checks for no initrd to the existing tests. Signed-off-by: Geoff Levand <geoff@infradead.org>
* parser: Use list to hold parsersGeoff Levand2013-05-171-18/+16
| | | | | | | Now that we dynamically add parsers, we can use a list to hold them. Also simplifies the test_run_parser() routine. Signed-off-by: Geoff Levand <geoff@infradead.org>
* test/parser: Add ubuntu grub testsGeoff Levand2013-05-173-0/+318
| | | | Signed-off-by: Geoff Levand <geoff@infradead.org>
* test/parser: Better message outputGeoff Levand2013-05-171-6/+7
| | | | Signed-off-by: Geoff Levand <geoff@infradead.org>
* test/parser: Add grub2 multiple resolution testJeremy Kerr2013-05-162-0/+42
| | | | Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* discover/grub2: handle search commands to specify root filesystemsJeremy Kerr2013-05-161-4/+23
| | | | | | Add a resource type for grub, allowing us to parse search parameters. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Add yaboot test from a ppc64 RH8 machineJeremy Kerr2013-05-163-2/+48
| | | | Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Add f18 grub config testJeremy Kerr2013-05-163-1/+191
| | | | | | Add a real-world config file from a f18 ppc64 machine. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Add simple GRUB2 parser testJeremy Kerr2013-05-162-0/+31
| | | | Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Add simple kboot testJeremy Kerr2013-05-162-0/+27
| | | | Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Add yaboot test for external devicesJeremy Kerr2013-05-162-1/+38
| | | | | | | Add a yaboot test to add boot options for an external device, then hotplug that device. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Add simple yaboot testJeremy Kerr2013-05-162-2/+33
| | | | Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Add test device hotplug functionsJeremy Kerr2013-05-162-0/+37
| | | | | | | | Add a function, test_hotplug_device(), to simulate the addition of devices during tests. This should make it possible to observe boot options' resources changing from unresolved state to resolved. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Add resource check helpersJeremy Kerr2013-05-162-0/+53
| | | | | | | Add check_resolved_local_resource and check_unresolved_resource to check the resources returned from parsers. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Add check_name helperJeremy Kerr2013-05-162-0/+22
| | | | | | Simple function to check a boot_option's name. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Add check_args helperJeremy Kerr2013-05-162-0/+28
| | | | | | Add a small helper to check boot option arguments. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Add check_boot_option_count helper & get_boot_optionJeremy Kerr2013-05-162-0/+58
| | | | | | | Add a helper function to check the expected boot option counts, and print the boot option details if the check fails. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Error on invalid parser nameJeremy Kerr2013-05-161-0/+5
| | | | | | | We should error-out if we didn't find a valid parser, so it doesn't look like we found no boot options. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Allow raw config data in test .c filesJeremy Kerr2013-05-163-1/+38
| | | | | | | | Add a little post-processing script (extract-config.awk) to allow us to put the config data directly into the test .c files, without having to quote the C string. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test/parser: Allow tests to provide pre-loaded config dataJeremy Kerr2013-05-162-0/+12
| | | | | | | Some tests may want to use an existing buffer as config data, so add test_read_config_data() to allow this. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* test: Replace parser tests with empty frameworkJeremy Kerr2013-05-1630-782/+237
| | | | | | | | | | | | | | | | | This change is a major rework of the parser tests. Currently, the parser tests just run the parsers on each subdir of data/, but we don't actually check the results. Rather than just running parsers and expecting a certain fixed output, the new tests are arbitraty (short!) C programs. This allows us to set up the device configuration / discover context etc in whatever manner necessary, and check that the boot options that the parsers emit are correct. This change removes all of the old tests, and adds a new "null" test. Actual tests will be added in subsequent changes. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Makefiles: remove -I$(includedir)Jeremy Kerr2013-05-071-1/+0
| | | | | | | | | | | Currently, we include the system include dir in some of our makefiles; this is causing build problems when cross-compiling, as the system include dir may not contain files for the host. The compiler should be searing in the proper system include dir, so just remove the redundant -I. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* discover: Add configuration methodsJeremy Kerr2013-04-291-1/+1
| | | | | | | | | | | | We'd like to be able to download petitboot configurations from other sources (not just local files), but we'll need some way to indicate to the parsers that a chunk of config data is from a specific source. This change adds "configuration methods". At present, we have only one: CONF_METHOD_LOCAL_FILE. For any incoming configuration data, we only run parsers that have registered themselves with that configuration method. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* parsers: dynamically register parsersJeremy Kerr2013-04-291-1/+1
| | | | | | | | | | | | | | | Currently, we require all parsers to be defined in an array in parsers.c. This change removes this requirement, by introducting a register_parser() macro, which adds a constructor to register the parser with the core parser infrastructure. Because each parser no longer resolves an undefined symbol, we need to use a `ld -r` object for libparser, instead of using libtool, which creates a .a (and hence has no parsers included). Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* discover: Change parsers to emit resources rather than filenamesJeremy Kerr2013-04-291-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | This change switches the parsers over to populate the resources in discover_boot_option, rather than the string parameters in boot_option. To do this, we need a few things: * Add struct resources to discover_boot_option for the boot_image, initrd and icon data. * Have the parsers populate the resources, rather than the strings. Currently, parsers can all use the devpath resource type. * Add a resolve_resource callback to parsers; this is how the device handler will attempt to resolve resources. * Change load_file to load_url, as we should be only accessing (resolved) resources by URLs. This then allows us to remove the mount map, and associated lookup code, as well as the UUID and label links to devices. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* discover: Introduce a container type for boot optionsJeremy Kerr2013-04-291-8/+23
| | | | | | | | | This change introduces a new type, struct discover_boot_option. Like struct discover_device adds discover-specific data to struct device, struct discover_boot_option allows the discover server to store more than just the boot option strings for a boot option. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* discover: Separate temporary and permanent device dataJeremy Kerr2013-04-161-5/+12
| | | | | | | | | | | At present, we keep both permanent (eg links/n_links) and temporary (event) data in struct discover_context. This change makes discover_context a temporary structure, just used during actual device discovery. Once discovery is complete, the permanent data (discover_device) is "committed" to the device handler. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* lib/types: Create common file for type definitionsJeremy Kerr2013-04-101-1/+1
| | | | | | | | | | | | The device and boot_option types are defined in pb-protocol.h, but aren't really specific to the procotol. This means a lot of non-messaging-related files are #including the protocol definitions unnecessarily. This change separates the types out into lib/types/types.h. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Geoff Levand <geoff@infradead.org>
* Add missing EXTRA_DIST filesGeoff Levand2012-03-291-1/+1
|
* Add grub.cfg from opensuse installGeoff Levand2012-03-262-0/+36
| | | | Signed-off-by: Geoff Levand <geoff@infradead.org>
* Add grub2 conf file parserGeoff Levand2012-03-182-0/+301
| | | | | | | | Add grub2 parser and sample config file. Reorder parser priorities: From (yaboot -> kboot) to (kboot -> grub2 -> yaboot). Signed-off-by: Geoff Levand <geoff@infradead.org>
* Parser test cleanupGeoff Levand2012-03-1824-1/+169
| | | | | | | | | | | Major cleanup of parser tests. * Change test data directory layout to ease test automation. * Remove some unneeded files. * Re-write test wraper script, rename to run-parser-tests. * Rework for autotools. Signed-off-by: Geoff Levand <geoff@infradead.org>
* Add test case for empty yaboot.conf fileGeoff Levand2009-06-301-0/+6
| | | | | | | Add a test case for empty yaboot.conf files. Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Kboot parser URL testGeoff Levand2009-03-301-0/+7
| | | | | | | Add a kboot parser test for network URLs. Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Add more yaboot parser testsGeoff Levand2009-03-304-0/+84
| | | | | | | | Add yaboot.conf files from fedora, OpenSUSE, and a yaboot whitespace and comment test. Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Initial support for multiple UIsJeremy Kerr2008-12-1515-0/+166
Move the device discovery code from separate udev helpers to a single process to listen on two sockets: one SOCK_DGRAM for incoming udev events, and one SOCK_STREAM for UIs to connect. Initial support for client/server infrastructure, still need to wire-up the udev messages. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
OpenPOWER on IntegriCloud