Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Side by Side Diff: tests/cgptlib_test.c

Issue 3315014: Successful partitions are never marked bad by cgptlib. (Closed) Base URL: http://git.chromium.org/git/vboot_reference.git
Patch Set: Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« firmware/lib/cgptlib/cgptlib.c ('K') | « firmware/version.c ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 * Use of this source code is governed by a BSD-style license that can be 2 * Use of this source code is governed by a BSD-style license that can be
3 * found in the LICENSE file. 3 * found in the LICENSE file.
4 */ 4 */
5 5
6 #include <string.h> 6 #include <string.h>
7 7
8 #include "cgptlib.h" 8 #include "cgptlib.h"
9 #include "cgptlib_internal.h" 9 #include "cgptlib_internal.h"
10 #include "cgptlib_test.h" 10 #include "cgptlib_test.h"
(...skipping 1050 matching lines...) Expand 10 before | Expand all | Expand 10 after
1061 EXPECT(0 == GetEntryTries(e + KERNEL_A)); 1061 EXPECT(0 == GetEntryTries(e + KERNEL_A));
1062 EXPECT(1 == GetEntrySuccessful(e2 + KERNEL_A)); 1062 EXPECT(1 == GetEntrySuccessful(e2 + KERNEL_A));
1063 EXPECT(4 == GetEntryPriority(e2 + KERNEL_A)); 1063 EXPECT(4 == GetEntryPriority(e2 + KERNEL_A));
1064 EXPECT(0 == GetEntryTries(e2 + KERNEL_A)); 1064 EXPECT(0 == GetEntryTries(e2 + KERNEL_A));
1065 /* Trying successful kernel changes nothing */ 1065 /* Trying successful kernel changes nothing */
1066 EXPECT(GPT_SUCCESS == GptUpdateKernelEntry(gpt, GPT_UPDATE_ENTRY_TRY)); 1066 EXPECT(GPT_SUCCESS == GptUpdateKernelEntry(gpt, GPT_UPDATE_ENTRY_TRY));
1067 EXPECT(1 == GetEntrySuccessful(e + KERNEL_A)); 1067 EXPECT(1 == GetEntrySuccessful(e + KERNEL_A));
1068 EXPECT(4 == GetEntryPriority(e + KERNEL_A)); 1068 EXPECT(4 == GetEntryPriority(e + KERNEL_A));
1069 EXPECT(0 == GetEntryTries(e + KERNEL_A)); 1069 EXPECT(0 == GetEntryTries(e + KERNEL_A));
1070 EXPECT(0 == gpt->modified); 1070 EXPECT(0 == gpt->modified);
1071 /* Marking it bad does, though */ 1071 /* Marking it bad also does not update it. */
1072 EXPECT(GPT_SUCCESS == GptUpdateKernelEntry(gpt, GPT_UPDATE_ENTRY_BAD)); 1072 EXPECT(GPT_SUCCESS == GptUpdateKernelEntry(gpt, GPT_UPDATE_ENTRY_BAD));
1073 EXPECT(0 == GetEntrySuccessful(e + KERNEL_A)); 1073 EXPECT(1 == GetEntrySuccessful(e + KERNEL_A));
1074 EXPECT(0 == GetEntryPriority(e + KERNEL_A)); 1074 EXPECT(4 == GetEntryPriority(e + KERNEL_A));
1075 EXPECT(0 == GetEntryTries(e + KERNEL_A)); 1075 EXPECT(0 == GetEntryTries(e + KERNEL_A));
1076 /* Which affects both copies of the partition entries */ 1076 EXPECT(0 == gpt->modified);
1077 EXPECT(0 == GetEntrySuccessful(e2 + KERNEL_A));
1078 EXPECT(0 == GetEntryPriority(e2 + KERNEL_A));
1079 EXPECT(0 == GetEntryTries(e2 + KERNEL_A));
1080 /* And that's caused the GPT to need updating */
1081 EXPECT(0x0F == gpt->modified);
1082 1077
1083 /* Kernel with tries */ 1078 /* Kernel with tries */
1084 EXPECT(GPT_SUCCESS == GptNextKernelEntry(gpt, &start, &size)); 1079 EXPECT(GPT_SUCCESS == GptNextKernelEntry(gpt, &start, &size));
1085 EXPECT(KERNEL_B == gpt->current_kernel); 1080 EXPECT(KERNEL_B == gpt->current_kernel);
1086 EXPECT(0 == GetEntrySuccessful(e + KERNEL_B)); 1081 EXPECT(0 == GetEntrySuccessful(e + KERNEL_B));
1087 EXPECT(3 == GetEntryPriority(e + KERNEL_B)); 1082 EXPECT(3 == GetEntryPriority(e + KERNEL_B));
1088 EXPECT(2 == GetEntryTries(e + KERNEL_B)); 1083 EXPECT(2 == GetEntryTries(e + KERNEL_B));
1089 /* Marking it bad clears it */ 1084 /* Marking it bad clears it */
1090 EXPECT(GPT_SUCCESS == GptUpdateKernelEntry(gpt, GPT_UPDATE_ENTRY_BAD)); 1085 EXPECT(GPT_SUCCESS == GptUpdateKernelEntry(gpt, GPT_UPDATE_ENTRY_BAD));
1091 EXPECT(0 == GetEntrySuccessful(e + KERNEL_B)); 1086 EXPECT(0 == GetEntrySuccessful(e + KERNEL_B));
1092 EXPECT(0 == GetEntryPriority(e + KERNEL_B)); 1087 EXPECT(0 == GetEntryPriority(e + KERNEL_B));
1093 EXPECT(0 == GetEntryTries(e + KERNEL_B)); 1088 EXPECT(0 == GetEntryTries(e + KERNEL_B));
1089 /* Which affects both copies of the partition entries */
1090 EXPECT(0 == GetEntrySuccessful(e2 + KERNEL_B));
1091 EXPECT(0 == GetEntryPriority(e2 + KERNEL_B));
1092 EXPECT(0 == GetEntryTries(e2 + KERNEL_B));
1093 /* And that's caused the GPT to need updating */
1094 EXPECT(0x0F == gpt->modified);
1094 1095
1095 /* Another kernel with tries */ 1096 /* Another kernel with tries */
1096 EXPECT(GPT_SUCCESS == GptNextKernelEntry(gpt, &start, &size)); 1097 EXPECT(GPT_SUCCESS == GptNextKernelEntry(gpt, &start, &size));
1097 EXPECT(KERNEL_X == gpt->current_kernel); 1098 EXPECT(KERNEL_X == gpt->current_kernel);
1098 EXPECT(0 == GetEntrySuccessful(e + KERNEL_X)); 1099 EXPECT(0 == GetEntrySuccessful(e + KERNEL_X));
1099 EXPECT(2 == GetEntryPriority(e + KERNEL_X)); 1100 EXPECT(2 == GetEntryPriority(e + KERNEL_X));
1100 EXPECT(2 == GetEntryTries(e + KERNEL_X)); 1101 EXPECT(2 == GetEntryTries(e + KERNEL_X));
1101 /* Trying it uses up a try */ 1102 /* Trying it uses up a try */
1102 EXPECT(GPT_SUCCESS == GptUpdateKernelEntry(gpt, GPT_UPDATE_ENTRY_TRY)); 1103 EXPECT(GPT_SUCCESS == GptUpdateKernelEntry(gpt, GPT_UPDATE_ENTRY_TRY));
1103 EXPECT(0 == GetEntrySuccessful(e + KERNEL_X)); 1104 EXPECT(0 == GetEntrySuccessful(e + KERNEL_X));
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
1245 printf(COL_RED "The following %d test cases are failed:\n" COL_STOP, 1246 printf(COL_RED "The following %d test cases are failed:\n" COL_STOP,
1246 error_count); 1247 error_count);
1247 for (i = 0; i < sizeof(test_cases)/sizeof(test_cases[0]); ++i) { 1248 for (i = 0; i < sizeof(test_cases)/sizeof(test_cases[0]); ++i) {
1248 if (test_cases[i].retval) 1249 if (test_cases[i].retval)
1249 printf(" %s()\n", test_cases[i].name); 1250 printf(" %s()\n", test_cases[i].name);
1250 } 1251 }
1251 } 1252 }
1252 1253
1253 return (error_count) ? 1 : 0; 1254 return (error_count) ? 1 : 0;
1254 } 1255 }
OLDNEW
« firmware/lib/cgptlib/cgptlib.c ('K') | « firmware/version.c ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698