On (10/02/16 11:38), Pavel Březina wrote:
>On 02/05/2016 05:13 PM, Lukas Slebodnik wrote:
>>On (05/02/16 16:56), Pavel Reichl wrote:
>>>Hopefully the last one.
>>
>>>From 58b06b8fee18c4242e301ecf71f92a77f6ba6e7b Mon Sep 17 00:00:00 2001
>
>Hi,
>I will chime in here since this mail remains clear...
>
>>>+#define TEST_2922_MIN_ID 1842600000
>>>+#define TEST_2922_MAX_ID 1842799999
>>>+#define TEST_2922_MAX_ID_PLUS_ONE (TEST_2922_MAX_ID + 1)
>>>+
>>>+#define TEST_2922_DFL_SLIDE 9212
>>>+#define TEST_2922_FIRST_SID TEST_DOM_SID"-0"
>>>+/* Last SID = first SID + (default) rangesize -1 */
>>>+#define TEST_2922_LAST_SID TEST_DOM_SID"-199999"
>>>+/* Last SID = first SID + rangesize */
>>>+#define TEST_2922_LAST_SID_PLUS_ONE  TEST_DOM_SID"-200000"
>>>+
>>We should prefer to use constants instead of #defines.
>>Constants are more type safe.
>
>I don't really care about type safety here I care about correct description
>of magic values and no duplication of them. Given the #defines prefix those
>can be used only for this test and some of the macros are used across the
>test and fixture I'd prefer combination of both.
>
>Keep MIN_ID and MAX_ID as macros. Drop _PLUS_ONE completely since "MAX_ID +
>1" is descriptive enough. The rest should be as static const since they are
>relevant only to one function in one test.
>
>Is that good enough compromise?
>
>>>struct test_ctx {
>>>     TALLOC_CTX *mem_idmap;
>>>     struct sss_idmap_ctx *idmap_ctx;
>>>@@ -128,6 +139,53 @@ static int setup_ranges(struct test_ctx *test_ctx, bool 
>>>external_mapping,
>>>     return 0;
>>>}
>>>
>>>+static int setup_ranges_2922(struct test_ctx *test_ctx)
>>>+{
>>>+    struct sss_idmap_range range;
>>>+    enum idmap_error_code err;
>>>+    const char *name;
>>>+    const char *sid;
>>>+    /* Pick a new slice. */
>>>+    id_t slice_num = -1;
>>>+
>>>+    if (test_ctx == NULL) {
>>>+        DEBUG(SSSDBG_FATAL_FAILURE,
>>>+              "test context is NULL\n");
>>>+        return 1;
>>>+    }
>>>+
>>>+    name = TEST_DOM_NAME;
>>>+    sid = TEST_DOM_SID;
>>>+
>>>+    err = sss_idmap_calculate_range(test_ctx->idmap_ctx, sid, &slice_num,
>>>+                                    &range);
>>>+    if (err != IDMAP_SUCCESS) {
>>>+        DEBUG(SSSDBG_FATAL_FAILURE,
>>>+              "sss_idmap_calculate_range failed: exp: [%d] but got [%d]\n",
>>>+              IDMAP_SUCCESS, err);
>>>+        return 1;
>>Please use different numbers for different failures.
>>
>>Persoanly, I do not like theusage of such error handling in tests.
>>But that was a  desigh decision of cmocka developers
>>which I do not consider as the right one.
>>
>>Old versions of cmocka allowed to use assertions in setup and teradown
>>function. The same applies to check framework. Such decision add
>>unnecassary complexity to the review process. Reviewer need to check
>>that different error codes are returned or debug message is logged
>>with proper debug level. But that's the separete discusssion.
>
>You can still use assertions in fixtures (I just checked with asn to be sure)
>and that is the way we should lean to. So forget error codes and debug
>messages here, use assertions to make it cleaner and shorter.
>
Thank you for another oninion. I prefer assertion as well but I was not
stricly against error codes.

You proposed more/less the same things as I wrote in my last mails.

LS
_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/admin/lists/sssd-devel@lists.fedorahosted.org

Reply via email to