]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/tests/xnu_uuid_test.c: New test.
authorVladimir Serbinenko <phcoder@gmail.com>
Tue, 12 Nov 2013 00:18:27 +0000 (01:18 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Tue, 12 Nov 2013 00:18:27 +0000 (01:18 +0100)
ChangeLog
grub-core/Makefile.core.def
grub-core/tests/lib/functional_test.c
grub-core/tests/xnu_uuid_test.c [new file with mode: 0644]

index 65a6a97557edafa92d42708fd0d260d4afa25ccd..250ef1488be3016eaedb5bff4c4f5b14f7992ce7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-11-12  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/tests/xnu_uuid_test.c: New test.
+
 2013-11-12  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/commands/hashsum.c: Remove unneeded memset (zalloc already
index b9188358cf9245c3f246b4a4180436d9568de76d..e237a9507681ba003abe79de9fd607320b6f9701 100644 (file)
@@ -1911,6 +1911,11 @@ module = {
   common = tests/setjmp_test.c;
 };
 
+module = {
+  name = xnu_uuid_test;
+  common = tests/xnu_uuid_test.c;
+};
+
 module = {
   name = div_test;
   common = tests/div_test.c;
index cb02f8f79e29aa63ad4acd834800ef7366277c8d..8459f396837bb1835425d22d7612667920a63ef6 100644 (file)
@@ -59,6 +59,7 @@ grub_functional_all_tests (grub_extcmd_context_t ctxt __attribute__ ((unused)),
   grub_dl_load ("setjmp_test");
   grub_dl_load ("cmdline_cat_test");
   grub_dl_load ("div_test");
+  grub_dl_load ("xnu_uuid_test");
 
   FOR_LIST_ELEMENTS (test, grub_test_list)
     ok = !grub_test_run (test) && ok;
diff --git a/grub-core/tests/xnu_uuid_test.c b/grub-core/tests/xnu_uuid_test.c
new file mode 100644 (file)
index 0000000..6a26ce3
--- /dev/null
@@ -0,0 +1,60 @@
+/* echo.c - Command to display a line of text  */
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 2011  Free Software Foundation, Inc.
+ *
+ *  GRUB is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  GRUB is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <grub/time.h>
+#include <grub/misc.h>
+#include <grub/dl.h>
+#include <grub/command.h>
+#include <grub/env.h>
+#include <grub/test.h>
+#include <grub/mm.h>
+
+GRUB_MOD_LICENSE ("GPLv3+");
+
+static void
+xnu_uuid_test (void)
+{
+  grub_command_t cmd;
+  cmd = grub_command_find ("xnu_uuid");
+  char *args[] = { (char *) "fedcba98", (char *) "tstvar", NULL };
+  const char *val;
+
+  if (!cmd)
+    {
+      grub_test_assert (0, "can't find command `%s'",
+                       args[0]);
+      return;
+    }
+  if ((cmd->func) (cmd, 2, args))
+    {
+      grub_test_assert (0, "%d: %s", grub_errno, grub_errmsg);
+      return;
+    }
+
+  val = grub_env_get ("tstvar");
+  if (!val)
+    {
+      grub_test_assert (0, "tstvar isn't set");
+      return;
+    }
+  grub_test_assert (grub_strcmp (val, "944F9DED-DBED-391C-9402-77C8CEE04173")
+                   == 0, "UUIDs don't match");
+}
+
+GRUB_FUNCTIONAL_TEST (xnu_uuid_test, xnu_uuid_test);