Fix and enable vboot_api_kernel_tests

Previously, these were not being run, and failed due to a test config
problem when they were run (vboot_api_kernel.c worked correctly, but
the test checked the wrong recovery reason).

BUG=chromium-os:38139
BRANCH=none
TEST=make runtests && FEATURES=test emerge-daisy vboot_reference

Change-Id: Ibefe5fe32f99a2c40f619a85df1bbfc81eb0c26c
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42668
diff --git a/Makefile b/Makefile
index d51a18b..cc310de 100644
--- a/Makefile
+++ b/Makefile
@@ -945,8 +945,9 @@
 	${RUNTEST} ${BUILD_RUN}/tests/utility_string_tests
 	${RUNTEST} ${BUILD_RUN}/tests/utility_tests
 	${RUNTEST} ${BUILD_RUN}/tests/vboot_api_devmode_tests
-	${RUNTEST} ${BUILD_RUN}/tests/vboot_api_init_tests
 	${RUNTEST} ${BUILD_RUN}/tests/vboot_api_firmware_tests
+	${RUNTEST} ${BUILD_RUN}/tests/vboot_api_init_tests
+	${RUNTEST} ${BUILD_RUN}/tests/vboot_api_kernel_tests
 	${RUNTEST} ${BUILD_RUN}/tests/vboot_audio_tests
 	${RUNTEST} ${BUILD_RUN}/tests/vboot_common_tests
 	${RUNTEST} ${BUILD_RUN}/tests/vboot_common2_tests ${TEST_KEYS}
diff --git a/tests/vboot_api_kernel_tests.c b/tests/vboot_api_kernel_tests.c
index be9ad38..9435fa1 100644
--- a/tests/vboot_api_kernel_tests.c
+++ b/tests/vboot_api_kernel_tests.c
@@ -163,7 +163,7 @@
 		.diskgetinfo_return_val = VBERROR_SUCCESS,
 		.loadkernel_return_val = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1,},
 
-		.expected_recovery_request_val = VBNV_RECOVERY_RW_NO_DISK,
+		.expected_recovery_request_val = VBNV_RECOVERY_RW_NO_KERNEL,
 		.expected_to_find_disk = DONT_CARE,
 		.expected_to_load_disk = 0,
 		.expected_return_val = 1
@@ -209,31 +209,6 @@
 	return 0;
 }
 
-int CheckResults(void)
-{
-	VBDEBUG(("%s()\n", __FUNCTION__));
-	VBDEBUG(("  recovery_request: %x %x\n",
-		 t->expected_recovery_request_val, got_recovery_request_val));
-	VBDEBUG(("  find_disk: (%s) (%s)\n",
-		 (t->expected_to_find_disk == DONT_CARE
-		  ? "DONT CARE"
-		  : t->expected_to_find_disk),
-		 got_find_disk));
-	VBDEBUG(("  load_disk: (%s) (%s)\n",
-		 (t->expected_to_load_disk == DONT_CARE
-		  ? "DONT CARE"
-		  : t->expected_to_load_disk),
-		 got_load_disk));
-	VBDEBUG(("  return_val: %x %x\n",
-		 t->expected_return_val, got_return_val));
-	return (t->expected_recovery_request_val == got_recovery_request_val &&
-		(t->expected_to_find_disk == DONT_CARE ||
-		 t->expected_to_find_disk == got_find_disk) &&
-		(t->expected_to_load_disk == DONT_CARE ||
-		 t->expected_to_load_disk == got_load_disk) &&
-		t->expected_return_val == got_return_val);
-}
-
 /****************************************************************************/
 /* Mocked verification functions */
 
@@ -247,7 +222,7 @@
 
 	*infos_ptr = mock_disks;
 
-	for(i=0; i<MAX_TEST_DISKS; i++) {
+	for(i = 0; i < MAX_TEST_DISKS; i++) {
 		if (is_nonzero(&t->disks_to_provide[i],
 			       sizeof(t->disks_to_provide[i]))) {
 			mock_disks[num_disks].bytes_per_lba =
@@ -320,14 +295,19 @@
 	int i;
 	int num_tests =  sizeof(test) / sizeof(test[0]);
 
-	for (i=0; i<num_tests; i++) {
-		VBDEBUG(("STARTING %s ...\n", test[i].name));
+	for (i = 0; i < num_tests; i++) {
+		printf("Test case: %s ...\n", test[i].name);
 		ResetMocks(i);
-		got_return_val = VbTryLoadKernel(0, &lkparams,
-						 test[i].want_flags);
-		VBDEBUG(("VbTryLoadKernel(): got_return_val = 0x%x\n",
-			 got_return_val));
-		TEST_TRUE(CheckResults(), test[i].name);
+		TEST_EQ(VbTryLoadKernel(0, &lkparams, test[i].want_flags),
+			t->expected_return_val, "  return value");
+		TEST_EQ(got_recovery_request_val,
+			t->expected_recovery_request_val, "  recovery_request");
+		if (t->expected_to_find_disk != DONT_CARE) {
+			TEST_PTR_EQ(got_find_disk, t->expected_to_find_disk,
+				    "  find disk");
+			TEST_PTR_EQ(got_load_disk, t->expected_to_load_disk,
+				    "  load disk");
+		}
 	}
 }