Commit Graph
42 Commits
Author SHA1 Message Date
BVK Chaitanya 0cdc2a095b 2010-03-14 BVK Chaitanya <bvk.groups@gmail.com>
GRUB shell lexer and parser improvements.

	* conf/any-emu.rmk: Build rule updates.
	* conf/common.rmk: Likewise.
	* conf/i386-coreboot.rmk: Likewise.
	* conf/i386-efi.rmk: Likewise.
	* conf/i386-ieee1275.rmk: Likewise.
	* conf/i386-pc.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/x86_64-efi.rmk: Likewise.

	* configure.ac: Configure check for flex.

	* include/grub/script_sh.h (grub_script_arg_type_t): More argument
	types.
	(grub_lexer_param): Struct member updates.
	(grub_parser_param): Likewise.
	(GRUB_LEXER_TOKEN_MAX): Maximum token size.
	(GRUB_LEXER_RECORD_INCREMENT): Memory increments' size.
	(grub_script_lexer_init): Prototype update.
	(grub_script_lexer_record_start): Likewise.
	(grub_script_lexer_record_stop): Likewise.
	(grub_script_lexer_yywrap): New function prototype.
	(grub_script_lexer_fini): Likewise.
	(grub_script_execute_argument_to_string): Removed by...
	(grub_script_execute_argument_to_argv): ...better version.

	* script/execute.c (ROUND_UPTO): New macro.
	(grub_script_execute_cmdline): Out of memory fixes.
	(grub_script_execute_menuentry): Likewise.
	(grub_script_execute_argument_to_string): Removed. Update all
	users by...
	(grub_script_execute_argument_to_argv): ...better version.
	* script/function.c (grub_script_function_create): Use
	grub_script_execute_argument_to_argv instead of
	grub_script_execute_argument_to_string.

	* script/lexer.c (check_varstate): Removed.
	(check_textstate): Removed.
	(grub_script_lexer_record_start): Likewise.
	(grub_script_lexer_record_stop): Likewise.
	(recordchar): Replaced with...
	(grub_script_lexer_record): ...new function.
	(nextchar): Removed.
	(grub_script_lexer_init): Rewritten.
	(grub_script_yylex): Rewritten.
	(append_newline): New function.
	(grub_script_lexer_yywrap): New function.
	(grub_script_lexer_fini): New function.
	(grub_script_yyerror): Sets error flag.

	* script/yylex.l: New file.
	(grub_lexer_yyfree): Wrapper for flex yyffre.
	(grub_lexer_yyalloc): Likewise.
	(grub_lexer_yyrealloc): Likewise.
	* script/parser.y: Refactored.

	* script/script.c (grub_script_arg_add): Out of memory fixes.
	(grub_script_add_arglist): Likewise.
	(grub_script_create_cmdline): Likewise.
	(grub_script_create_cmdmenu): Likewise.
	(grub_script_add_cmd): Likewise.
	(grub_script_parse): Use grub_script_lexer_fini to deallocated.
	* util/grub-script-check.c (grub_script_execute_menuentry): Remove
	unnecessary code.

	* tests/grub_script_echo1.in: New testcase.
	* tests/grub_script_vars1.in: New testcase.
	* tests/grub_script_echo_keywords.in: New testcase.
2010-03-14 22:37:17 +05:30
BVK Chaitanya 8622549153 merged in mainline 2010-03-14 22:20:55 +05:30
BVK Chaitanya a929c8cd1e fix off-by-one error in menuentry cmd 2010-02-11 18:49:57 +05:30
BVK Chaitanya 1136ac2632 fix for grub-script-check to handle empty lines 2010-01-28 22:31:06 +05:30
BVK Chaitanya 366e15ba86 sync with trunk 2010-01-28 21:48:15 +05:30
BVK Chaitanya f45d2663b0 add changelog 2010-01-28 21:46:59 +05:30
BVK Chaitanya 275d6f6bd4 fix grub-script-check 2010-01-28 21:43:28 +05:30
BVK Chaitanya 37effddaf3 make parenthesis as valid word characters 2010-01-25 22:01:14 +05:30
BVK Chaitanya fc9e58104a fix underquoted AC_DEFUN parameters 2010-01-23 22:38:10 +05:30
BVK Chaitanya f4c499f86f replaced magic numbers with macros 2010-01-23 19:46:28 +05:30
BVK Chaitanya 1368740e69 one more bug fix in grub_script_execute_arglist_to_argv 2010-01-23 10:28:52 +05:30
BVK Chaitanya d63cdb6e70 removed error-verbose to reduce resulting sh.mod size 2010-01-23 10:16:05 +05:30
BVK Chaitanya 1a0c3b4809 some bug fixes 2010-01-23 10:14:32 +05:30
BVK Chaitanya 836727564e replace grub_printf with grub_dprintf 2010-01-23 09:18:13 +05:30
BVK Chaitanya 1fb08ed515 return arg count from grub_script_execute_arglist_to_argv 2010-01-23 09:12:46 +05:30
BVK Chaitanya 345dd552ad replace ROUND_UPTO with ALIGN_UP 2010-01-23 08:57:26 +05:30
BVK Chaitanya bae09d0d47 remove arbitrary limit on menuentry recording 2010-01-23 00:42:55 +05:30
BVK Chaitanya df6dc2113a removed arbitrary limit on token size 2010-01-23 00:14:00 +05:30
BVK Chaitanya 547e494f1b lexer-rewrite rebase commit 2010-01-22 19:07:27 +05:30
BVK Chaitanya 242f3b11c9 2010-01-20 BVK Chaitanya <bvk.groups@gmail.com>
* include/grub/script_sh.h (sourcecode): Remove const qualifier to
	fix grub-script-check warning.
2010-01-20 12:52:29 +05:30
BVK Chaitanya aca655fd20 fix grub-script-check warnings 2010-01-20 12:48:35 +05:30
BVK Chaitanya a2eaee157c Add missing ChangeLog entry for -r2078 2010-01-18 19:49:19 +05:30
BVK Chaitanya 9ccd8cde97 2010-01-18 BVK Chaitanya <bvk.groups@gmail.com>
Added new tool, grub-scrit-check to verify grub.cfg syntax.

	* util/grub-script-check.c: grub-script-check tool.
	* conf/common.rmk: Make rules for grub-script-check.
2010-01-18 17:59:18 +05:30
BVK Chaitanya 2997c41ffd update copyright year 2010-01-18 16:58:31 +05:30
BVK Chaitanya d8d4217e3c merge trunk 2010-01-18 16:58:03 +05:30
BVK Chaitanya 0934d18466 2010-01-14 BVK Chaitanya <bvk.groups@gmail.com>
Unit testing framework for GRUB.

	* Makefile.in: Test framework build rules for 'make check'.
	* conf/tests.rmk: Build rules for individual tests and framework.

	* include/grub/test.h: Header file for whitebox tests.
	* tests/lib/functional_test.c: Framework support for whitebox
	functional tests.
	* tests/lib/test.c: Common whitebox testing code for unit and
	functional tests.
	* tests/lib/unit_test.c: Framework support for whitebox unit
	tests.

	* tests/util/grub-shell-tester.in: Support utility for grub-script
	tests.
	* tests/util/grub-shell.in: Utility to execute grub-script
	commands in a Qemu instance.

	* tests/example_functional_test.c: Example whitebox functional
	test.
	* tests/example_grub_script_test.in: Example grub-script test.
	* tests/example_scripted_test.in: Example scripted test.
	* tests/example_unit_test.c: Example whitebox unit test.
2010-01-14 19:15:21 +05:30
BVK Chaitanya 96f60752d1 merge trunk 2010-01-14 18:45:19 +05:30
BVK Chaitanya 2285d4642a use qemu-system-i386 instead of qemu 2010-01-14 18:39:12 +05:30
BVK Chaitanya 0b8891c276 removed unnecessary grub_test_* wrappers 2010-01-14 17:17:51 +05:30
BVK Chaitanya 4d362fde58 build only functional tests on make 2010-01-12 15:49:40 +05:30
BVK Chaitanya 528aeaeabb merge trunk 2010-01-12 11:02:49 +05:30
BVK Chaitanya afafb37e9b added boot device selection to grub-shell 2010-01-12 10:54:37 +05:30
BVK Chaitanya c5431d4029 build tests on make, but run on make check 2010-01-12 10:16:17 +05:30
BVK Chaitanya 350285caae removed unnecessary EXPORT_* macro usage 2010-01-12 09:23:24 +05:30
BVK Chaitanya afdc9ad006 fixed an error message 2010-01-12 09:00:55 +05:30
BVK Chaitanya 337470f1e1 added changelog 2010-01-09 20:31:52 +05:30
BVK Chaitanya 58ad6b39c4 added changelog file 2010-01-09 20:31:33 +05:30
BVK Chaitanya 21a99f5804 added grub-script-check tool 2010-01-09 20:27:58 +05:30
BVK Chaitanya 5cc318eb35 replaced __func__ with simpler __FUNCTION__ macro 2010-01-08 22:06:46 +05:30
BVK Chaitanya 1afc27d06b added changelog file 2010-01-08 21:28:57 +05:30
BVK Chaitanya 169b1cd2d8 added functional tests to make-check 2010-01-08 16:35:32 +05:30
BVK Chaitanya 6fc804ffbb unit testing framework 2010-01-08 15:19:10 +05:30