[Groonga-commit] groonga/groonga [master] [test] add grn_test_assert_equal_type().

Back to archive index

null+****@clear***** null+****@clear*****
2012年 2月 10日 (金) 15:54:53 JST


Kouhei Sutou	2012-02-10 15:54:53 +0900 (Fri, 10 Feb 2012)

  New Revision: 9b3c89b905be5834dae39cb36f0886c16e87ab53

  Log:
    [test] add grn_test_assert_equal_type().

  Modified files:
    test/unit/lib/grn-assertions.c
    test/unit/lib/grn-assertions.h

  Modified: test/unit/lib/grn-assertions.c (+39 -1)
===================================================================
--- test/unit/lib/grn-assertions.c    2012-02-10 15:54:27 +0900 (6fb74c0)
+++ test/unit/lib/grn-assertions.c    2012-02-10 15:54:53 +0900 (e603d87)
@@ -1,6 +1,6 @@
 /* -*- c-basic-offset: 2; coding: utf-8 -*- */
 /*
-  Copyright (C) 2008-2010  Kouhei Sutou <kou****@clear*****>
+  Copyright (C) 2008-2012  Kouhei Sutou <kou****@clear*****>
 
   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
@@ -100,6 +100,44 @@ grn_test_assert_equal_id_helper(grn_ctx *context,
 }
 
 void
+grn_test_assert_equal_type_helper(grn_ctx *context,
+                                  unsigned char expected,
+                                  unsigned char actual,
+                                  const gchar *expression_context,
+                                  const gchar *expression_expected,
+                                  const gchar *expression_actual)
+{
+  if (expected == actual) {
+    cut_test_pass();
+  } else {
+    grn_obj inspected_expected, inspected_actual;
+
+    GRN_TEXT_INIT(&inspected_expected, 0);
+    GRN_TEXT_INIT(&inspected_actual, 0);
+    grn_inspect_type(context, &inspected_expected, expected);
+    grn_inspect_type(context, &inspected_actual, actual);
+    cut_set_expected(
+      cut_take_printf("%x: <%.*s>",
+                      expected,
+                      (int)GRN_TEXT_LEN(&inspected_expected),
+                      GRN_TEXT_VALUE(&inspected_expected)));
+    cut_set_actual(
+      cut_take_printf("%x: <%.*s>",
+                      actual,
+                      (int)GRN_TEXT_LEN(&inspected_actual),
+                      GRN_TEXT_VALUE(&inspected_actual)));
+    grn_obj_unlink(context, &inspected_expected);
+    grn_obj_unlink(context, &inspected_actual);
+    cut_test_fail(cut_take_printf("<%s> == <%s> (%s)\n"
+                                  " context: <%p>",
+                                  expression_expected,
+                                  expression_actual,
+                                  expression_context,
+                                  context));
+  }
+}
+
+void
 grn_test_assert_equal_record_id_helper(grn_ctx *context, grn_obj *table,
                                        grn_id expected, grn_id actual,
                                        const gchar *expression_context,

  Modified: test/unit/lib/grn-assertions.h (+18 -1)
===================================================================
--- test/unit/lib/grn-assertions.h    2012-02-10 15:54:27 +0900 (e58fd96)
+++ test/unit/lib/grn-assertions.h    2012-02-10 15:54:53 +0900 (c0616b1)
@@ -1,6 +1,6 @@
 /* -*- c-basic-offset: 2; coding: utf-8 -*- */
 /*
-  Copyright (C) 2008-2010  Kouhei Sutou <kou****@clear*****>
+  Copyright (C) 2008-2012  Kouhei Sutou <kou****@clear*****>
 
   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
@@ -47,6 +47,16 @@
       __VA_ARGS__),                                                     \
     grn_test_assert_equal_id(context, expected, actual))
 
+#define grn_test_assert_equal_type(context, expected, actual, ...)      \
+  cut_trace_with_info_expression(                                       \
+    cut_test_with_user_message(                                         \
+      grn_test_assert_equal_type_helper((context),                      \
+                                        (expected), (actual),           \
+                                        #context,                       \
+                                        #expected, #actual),            \
+      __VA_ARGS__),                                                     \
+    grn_test_assert_equal_type(context, expected, actual))
+
 #define grn_test_assert_equal_record_id(context, table,                 \
                                         expected, actual, ...)          \
   cut_trace_with_info_expression(                                       \
@@ -182,6 +192,13 @@ void     grn_test_assert_equal_id_helper(grn_ctx     *context,
                                          const gchar *expression_context,
                                          const gchar *expression_expected,
                                          const gchar *expression_actual);
+void     grn_test_assert_equal_type_helper
+                                        (grn_ctx     *context,
+                                         unsigned char expected,
+                                         unsigned char actual,
+                                         const gchar *expression_context,
+                                         const gchar *expression_expected,
+                                         const gchar *expression_actual);
 void     grn_test_assert_equal_record_id_helper
                                         (grn_ctx     *context,
                                          grn_obj     *table,




Groonga-commit メーリングリストの案内
Back to archive index