diff options
Diffstat (limited to 'drivers/of/unittest.c')
-rw-r--r-- | drivers/of/unittest.c | 708 |
1 files changed, 354 insertions, 354 deletions
diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c index a4f90c238e78..e844907c9efa 100644 --- a/drivers/of/unittest.c +++ b/drivers/of/unittest.c @@ -25,115 +25,115 @@ #include "of_private.h" -static struct selftest_results { +static struct unittest_results { int passed; int failed; -} selftest_results; +} unittest_results; -#define selftest(result, fmt, ...) ({ \ +#define unittest(result, fmt, ...) ({ \ bool failed = !(result); \ if (failed) { \ - selftest_results.failed++; \ + unittest_results.failed++; \ pr_err("FAIL %s():%i " fmt, __func__, __LINE__, ##__VA_ARGS__); \ } else { \ - selftest_results.passed++; \ + unittest_results.passed++; \ pr_debug("pass %s():%i\n", __func__, __LINE__); \ } \ failed; \ }) -static void __init of_selftest_find_node_by_name(void) +static void __init of_unittest_find_node_by_name(void) { struct device_node *np; const char *options; np = of_find_node_by_path("/testcase-data"); - selftest(np && !strcmp("/testcase-data", np->full_name), + unittest(np && !strcmp("/testcase-data", np->full_name), "find /testcase-data failed\n"); of_node_put(np); /* Test if trailing '/' works */ np = of_find_node_by_path("/testcase-data/"); - selftest(!np, "trailing '/' on /testcase-data/ should fail\n"); + unittest(!np, "trailing '/' on /testcase-data/ should fail\n"); np = of_find_node_by_path("/testcase-data/phandle-tests/consumer-a"); - selftest(np && !strcmp("/testcase-data/phandle-tests/consumer-a", np->full_name), + unittest(np && !strcmp("/testcase-data/phandle-tests/consumer-a", np->full_name), "find /testcase-data/phandle-tests/consumer-a failed\n"); of_node_put(np); np = of_find_node_by_path("testcase-alias"); - selftest(np && !strcmp("/testcase-data", np->full_name), + unittest(np && !strcmp("/testcase-data", np->full_name), "find testcase-alias failed\n"); of_node_put(np); /* Test if trailing '/' works on aliases */ np = of_find_node_by_path("testcase-alias/"); - selftest(!np, "trailing '/' on testcase-alias/ should fail\n"); + unittest(!np, "trailing '/' on testcase-alias/ should fail\n"); np = of_find_node_by_path("testcase-alias/phandle-tests/consumer-a"); - selftest(np && !strcmp("/testcase-data/phandle-tests/consumer-a", np->full_name), + unittest(np && !strcmp("/testcase-data/phandle-tests/consumer-a", np->full_name), "find testcase-alias/phandle-tests/consumer-a failed\n"); of_node_put(np); np = of_find_node_by_path("/testcase-data/missing-path"); - selftest(!np, "non-existent path returned node %s\n", np->full_name); + unittest(!np, "non-existent path returned node %s\n", np->full_name); of_node_put(np); np = of_find_node_by_path("missing-alias"); - selftest(!np, "non-existent alias returned node %s\n", np->full_name); + unittest(!np, "non-existent alias returned node %s\n", np->full_name); of_node_put(np); np = of_find_node_by_path("testcase-alias/missing-path"); - selftest(!np, "non-existent alias with relative path returned node %s\n", np->full_name); + unittest(!np, "non-existent alias with relative path returned node %s\n", np->full_name); of_node_put(np); np = of_find_node_opts_by_path("/testcase-data:testoption", &options); - selftest(np && !strcmp("testoption", options), + unittest(np && !strcmp("testoption", options), "option path test failed\n"); of_node_put(np); np = of_find_node_opts_by_path("/testcase-data:test/option", &options); - selftest(np && !strcmp("test/option", options), + unittest(np && !strcmp("test/option", options), "option path test, subcase #1 failed\n"); of_node_put(np); np = of_find_node_opts_by_path("/testcase-data/testcase-device1:test/option", &options); - selftest(np && !strcmp("test/option", options), + unittest(np && !strcmp("test/option", options), "option path test, subcase #2 failed\n"); of_node_put(np); np = of_find_node_opts_by_path("/testcase-data:testoption", NULL); - selftest(np, "NULL option path test failed\n"); + unittest(np, "NULL option path test failed\n"); of_node_put(np); np = of_find_node_opts_by_path("testcase-alias:testaliasoption", &options); - selftest(np && !strcmp("testaliasoption", options), + unittest(np && !strcmp("testaliasoption", options), "option alias path test failed\n"); of_node_put(np); np = of_find_node_opts_by_path("testcase-alias:test/alias/option", &options); - selftest(np && !strcmp("test/alias/option", options), + unittest(np && !strcmp("test/alias/option", options), "option alias path test, subcase #1 failed\n"); of_node_put(np); np = of_find_node_opts_by_path("testcase-alias:testaliasoption", NULL); - selftest(np, "NULL option alias path test failed\n"); + unittest(np, "NULL option alias path test failed\n"); of_node_put(np); options = "testoption"; np = of_find_node_opts_by_path("testcase-alias", &options); - selftest(np && !options, "option clearing test failed\n"); + unittest(np && !options, "option clearing test failed\n"); of_node_put(np); options = "testoption"; np = of_find_node_opts_by_path("/", &options); - selftest(np && !options, "option clearing root node test failed\n"); + unittest(np && !options, "option clearing root node test failed\n"); of_node_put(np); } -static void __init of_selftest_dynamic(void) +static void __init of_unittest_dynamic(void) { struct device_node *np; struct property *prop; @@ -147,7 +147,7 @@ static void __init of_selftest_dynamic(void) /* Array of 4 properties for the purpose of testing */ prop = kzalloc(sizeof(*prop) * 4, GFP_KERNEL); if (!prop) { - selftest(0, "kzalloc() failed\n"); + unittest(0, "kzalloc() failed\n"); return; } @@ -155,20 +155,20 @@ static void __init of_selftest_dynamic(void) prop->name = "new-property"; prop->value = "new-property-data"; prop->length = strlen(prop->value); - selftest(of_add_property(np, prop) == 0, "Adding a new property failed\n"); + unittest(of_add_property(np, prop) == 0, "Adding a new property failed\n"); /* Try to add an existing property - should fail */ prop++; prop->name = "new-property"; prop->value = "new-property-data-should-fail"; prop->length = strlen(prop->value); - selftest(of_add_property(np, prop) != 0, + unittest(of_add_property(np, prop) != 0, "Adding an existing property should have failed\n"); /* Try to modify an existing property - should pass */ prop->value = "modify-property-data-should-pass"; prop->length = strlen(prop->value); - selftest(of_update_property(np, prop) == 0, + unittest(of_update_property(np, prop) == 0, "Updating an existing property should have passed\n"); /* Try to modify non-existent property - should pass*/ @@ -176,11 +176,11 @@ static void __init of_selftest_dynamic(void) prop->name = "modify-property"; prop->value = "modify-missing-property-data-should-pass"; prop->length = strlen(prop->value); - selftest(of_update_property(np, prop) == 0, + unittest(of_update_property(np, prop) == 0, "Updating a missing property should have passed\n"); /* Remove property - should pass */ - selftest(of_remove_property(np, prop) == 0, + unittest(of_remove_property(np, prop) == 0, "Removing a property should have passed\n"); /* Adding very large property - should pass */ @@ -188,13 +188,13 @@ static void __init of_selftest_dynamic(void) prop->name = "large-property-PAGE_SIZEx8"; prop->length = PAGE_SIZE * 8; prop->value = kzalloc(prop->length, GFP_KERNEL); - selftest(prop->value != NULL, "Unable to allocate large buffer\n"); + unittest(prop->value != NULL, "Unable to allocate large buffer\n"); if (prop->value) - selftest(of_add_property(np, prop) == 0, + unittest(of_add_property(np, prop) == 0, "Adding a large property should have passed\n"); } -static int __init of_selftest_check_node_linkage(struct device_node *np) +static int __init of_unittest_check_node_linkage(struct device_node *np) { struct device_node *child; int count = 0, rc; @@ -206,7 +206,7 @@ static int __init of_selftest_check_node_linkage(struct device_node *np) return -EINVAL; } - rc = of_selftest_check_node_linkage(child); + rc = of_unittest_check_node_linkage(child); if (rc < 0) return rc; count += rc; @@ -215,7 +215,7 @@ static int __init of_selftest_check_node_linkage(struct device_node *np) return count + 1; } -static void __init of_selftest_check_tree_linkage(void) +static void __init of_unittest_check_tree_linkage(void) { struct device_node *np; int allnode_count = 0, child_count; @@ -225,10 +225,10 @@ static void __init of_selftest_check_tree_linkage(void) for_each_of_allnodes(np) allnode_count++; - child_count = of_selftest_check_node_linkage(of_root); + child_count = of_unittest_check_node_linkage(of_root); - selftest(child_count > 0, "Device node data structure is corrupted\n"); - selftest(child_count == allnode_count, + unittest(child_count > 0, "Device node data structure is corrupted\n"); + unittest(child_count == allnode_count, "allnodes list size (%i) doesn't match sibling lists size (%i)\n", allnode_count, child_count); pr_debug("allnodes list size (%i); sibling lists size (%i)\n", allnode_count, child_count); @@ -240,7 +240,7 @@ struct node_hash { }; static DEFINE_HASHTABLE(phandle_ht, 8); -static void __init of_selftest_check_phandles(void) +static void __init of_unittest_check_phandles(void) { struct device_node *np; struct node_hash *nh; @@ -268,7 +268,7 @@ static void __init of_selftest_check_phandles(void) hash_add(phandle_ht, &nh->node, np->phandle); phandle_count++; } - selftest(dup_count == 0, "Found %i duplicates in %i phandles\n", + unittest(dup_count == 0, "Found %i duplicates in %i phandles\n", dup_count, phandle_count); /* Clean up */ @@ -278,7 +278,7 @@ static void __init of_selftest_check_phandles(void) } } -static void __init of_selftest_parse_phandle_with_args(void) +static void __init of_unittest_parse_phandle_with_args(void) { struct device_node *np; struct of_phandle_args args; @@ -291,7 +291,7 @@ static void __init of_selftest_parse_phandle_with_args(void) } rc = of_count_phandle_with_args(np, "phandle-list", "#phandle-cells"); - selftest(rc == 7, "of_count_phandle_with_args() returned %i, expected 7\n", rc); + unittest(rc == 7, "of_count_phandle_with_args() returned %i, expected 7\n", rc); for (i = 0; i < 8; i++) { bool passed = true; @@ -344,44 +344,44 @@ static void __init of_selftest_parse_phandle_with_args(void) passed = false; } - selftest(passed, "index %i - data error on node %s rc=%i\n", + unittest(passed, "index %i - data error on node %s rc=%i\n", i, args.np->full_name, rc); } /* Check for missing list property */ rc = of_parse_phandle_with_args(np, "phandle-list-missing", "#phandle-cells", 0, &args); - selftest(rc == -ENOENT, "expected:%i got:%i\n", -ENOENT, rc); + unittest(rc == -ENOENT, "expected:%i got:%i\n", -ENOENT, rc); rc = of_count_phandle_with_args(np, "phandle-list-missing", "#phandle-cells"); - selftest(rc == -ENOENT, "expected:%i got:%i\n", -ENOENT, rc); + unittest(rc == -ENOENT, "expected:%i got:%i\n", -ENOENT, rc); /* Check for missing cells property */ rc = of_parse_phandle_with_args(np, "phandle-list", "#phandle-cells-missing", 0, &args); - selftest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); + unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); rc = of_count_phandle_with_args(np, "phandle-list", "#phandle-cells-missing"); - selftest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); + unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); /* Check for bad phandle in list */ rc = of_parse_phandle_with_args(np, "phandle-list-bad-phandle", "#phandle-cells", 0, &args); - selftest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); + unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); rc = of_count_phandle_with_args(np, "phandle-list-bad-phandle", "#phandle-cells"); - selftest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); + unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); /* Check for incorrectly formed argument list */ rc = of_parse_phandle_with_args(np, "phandle-list-bad-args", "#phandle-cells", 1, &args); - selftest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); + unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); rc = of_count_phandle_with_args(np, "phandle-list-bad-args", "#phandle-cells"); - selftest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); + unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); } -static void __init of_selftest_property_string(void) +static void __init of_unittest_property_string(void) { const char *strings[4]; struct device_node *np; @@ -394,79 +394,79 @@ static void __init of_selftest_property_string(void) } rc = of_property_match_string(np, "phandle-list-names", "first"); - selftest(rc == 0, "first expected:0 got:%i\n", rc); + unittest(rc == 0, "first expected:0 got:%i\n", rc); rc = of_property_match_string(np, "phandle-list-names", "second"); - selftest(rc == 1, "second expected:1 got:%i\n", rc); + unittest(rc == 1, "second expected:1 got:%i\n", rc); rc = of_property_match_string(np, "phandle-list-names", "third"); - selftest(rc == 2, "third expected:2 got:%i\n", rc); + unittest(rc == 2, "third expected:2 got:%i\n", rc); rc = of_property_match_string(np, "phandle-list-names", "fourth"); - selftest(rc == -ENODATA, "unmatched string; rc=%i\n", rc); + unittest(rc == -ENODATA, "unmatched string; rc=%i\n", rc); rc = of_property_match_string(np, "missing-property", "blah"); - selftest(rc == -EINVAL, "missing property; rc=%i\n", rc); + unittest(rc == -EINVAL, "missing property; rc=%i\n", rc); rc = of_property_match_string(np, "empty-property", "blah"); - selftest(rc == -ENODATA, "empty property; rc=%i\n", rc); + unittest(rc == -ENODATA, "empty property; rc=%i\n", rc); rc = of_property_match_string(np, "unterminated-string", "blah"); - selftest(rc == -EILSEQ, "unterminated string; rc=%i\n", rc); + unittest(rc == -EILSEQ, "unterminated string; rc=%i\n", rc); /* of_property_count_strings() tests */ rc = of_property_count_strings(np, "string-property"); - selftest(rc == 1, "Incorrect string count; rc=%i\n", rc); + unittest(rc == 1, "Incorrect string count; rc=%i\n", rc); rc = of_property_count_strings(np, "phandle-list-names"); - selftest(rc == 3, "Incorrect string count; rc=%i\n", rc); + unittest(rc == 3, "Incorrect string count; rc=%i\n", rc); rc = of_property_count_strings(np, "unterminated-string"); - selftest(rc == -EILSEQ, "unterminated string; rc=%i\n", rc); + unittest(rc == -EILSEQ, "unterminated string; rc=%i\n", rc); rc = of_property_count_strings(np, "unterminated-string-list"); - selftest(rc == -EILSEQ, "unterminated string array; rc=%i\n", rc); + unittest(rc == -EILSEQ, "unterminated string array; rc=%i\n", rc); /* of_property_read_string_index() tests */ rc = of_property_read_string_index(np, "string-property", 0, strings); - selftest(rc == 0 && !strcmp(strings[0], "foobar"), "of_property_read_string_index() failure; rc=%i\n", rc); + unittest(rc == 0 && !strcmp(strings[0], "foobar"), "of_property_read_string_index() failure; rc=%i\n", rc); strings[0] = NULL; rc = of_property_read_string_index(np, "string-property", 1, strings); - selftest(rc == -ENODATA && strings[0] == NULL, "of_property_read_string_index() failure; rc=%i\n", rc); + unittest(rc == -ENODATA && strings[0] == NULL, "of_property_read_string_index() failure; rc=%i\n", rc); rc = of_property_read_string_index(np, "phandle-list-names", 0, strings); - selftest(rc == 0 && !strcmp(strings[0], "first"), "of_property_read_string_index() failure; rc=%i\n", rc); + unittest(rc == 0 && !strcmp(strings[0], "first"), "of_property_read_string_index() failure; rc=%i\n", rc); rc = of_property_read_string_index(np, "phandle-list-names", 1, strings); - selftest(rc == 0 && !strcmp(strings[0], "second"), "of_property_read_string_index() failure; rc=%i\n", rc); + unittest(rc == 0 && !strcmp(strings[0], "second"), "of_property_read_string_index() failure; rc=%i\n", rc); rc = of_property_read_string_index(np, "phandle-list-names", 2, strings); - selftest(rc == 0 && !strcmp(strings[0], "third"), "of_property_read_string_index() failure; rc=%i\n", rc); + unittest(rc == 0 && !strcmp(strings[0], "third"), "of_property_read_string_index() failure; rc=%i\n", rc); strings[0] = NULL; rc = of_property_read_string_index(np, "phandle-list-names", 3, strings); - selftest(rc == -ENODATA && strings[0] == NULL, "of_property_read_string_index() failure; rc=%i\n", rc); + unittest(rc == -ENODATA && strings[0] == NULL, "of_property_read_string_index() failure; rc=%i\n", rc); strings[0] = NULL; rc = of_property_read_string_index(np, "unterminated-string", 0, strings); - selftest(rc == -EILSEQ && strings[0] == NULL, "of_property_read_string_index() failure; rc=%i\n", rc); + unittest(rc == -EILSEQ && strings[0] == NULL, "of_property_read_string_index() failure; rc=%i\n", rc); rc = of_property_read_string_index(np, "unterminated-string-list", 0, strings); - selftest(rc == 0 && !strcmp(strings[0], "first"), "of_property_read_string_index() failure; rc=%i\n", rc); + unittest(rc == 0 && !strcmp(strings[0], "first"), "of_property_read_string_index() failure; rc=%i\n", rc); strings[0] = NULL; rc = of_property_read_string_index(np, "unterminated-string-list", 2, strings); /* should fail */ - selftest(rc == -EILSEQ && strings[0] == NULL, "of_property_read_string_index() failure; rc=%i\n", rc); + unittest(rc == -EILSEQ && strings[0] == NULL, "of_property_read_string_index() failure; rc=%i\n", rc); strings[1] = NULL; /* of_property_read_string_array() tests */ rc = of_property_read_string_array(np, "string-property", strings, 4); - selftest(rc == 1, "Incorrect string count; rc=%i\n", rc); + unittest(rc == 1, "Incorrect string count; rc=%i\n", rc); rc = of_property_read_string_array(np, "phandle-list-names", strings, 4); - selftest(rc == 3, "Incorrect string count; rc=%i\n", rc); + unittest(rc == 3, "Incorrect string count; rc=%i\n", rc); rc = of_property_read_string_array(np, "unterminated-string", strings, 4); - selftest(rc == -EILSEQ, "unterminated string; rc=%i\n", rc); + unittest(rc == -EILSEQ, "unterminated string; rc=%i\n", rc); /* -- An incorrectly formed string should cause a failure */ rc = of_property_read_string_array(np, "unterminated-string-list", strings, 4); - selftest(rc == -EILSEQ, "unterminated string array; rc=%i\n", rc); + unittest(rc == -EILSEQ, "unterminated string array; rc=%i\n", rc); /* -- parsing the correctly formed strings should still work: */ strings[2] = NULL; rc = of_property_read_string_array(np, "unterminated-string-list", strings, 2); - selftest(rc == 2 && strings[2] == NULL, "of_property_read_string_array() failure; rc=%i\n", rc); + unittest(rc == 2 && strings[2] == NULL, "of_property_read_string_array() failure; rc=%i\n", rc); strings[1] = NULL; rc = of_property_read_string_array(np, "phandle-list-names", strings, 1); - selftest(rc == 1 && strings[1] == NULL, "Overwrote end of string array; rc=%i, str='%s'\n", rc, strings[1]); + unittest(rc == 1 && strings[1] == NULL, "Overwrote end of string array; rc=%i, str='%s'\n", rc, strings[1]); } #define propcmp(p1, p2) (((p1)->length == (p2)->length) && \ (p1)->value && (p2)->value && \ !memcmp((p1)->value, (p2)->value, (p1)->length) && \ !strcmp((p1)->name, (p2)->name)) -static void __init of_selftest_property_copy(void) +static void __init of_unittest_property_copy(void) { #ifdef CONFIG_OF_DYNAMIC struct property p1 = { .name = "p1", .length = 0, .value = "" }; @@ -474,20 +474,20 @@ static void __init of_selftest_property_copy(void) struct property *new; new = __of_prop_dup(&p1, GFP_KERNEL); - selftest(new && propcmp(&p1, new), "empty property didn't copy correctly\n"); + unittest(new && propcmp(&p1, new), "empty property didn't copy correctly\n"); kfree(new->value); kfree(new->name); kfree(new); new = __of_prop_dup(&p2, GFP_KERNEL); - selftest(new && propcmp(&p2, new), "non-empty property didn't copy correctly\n"); + unittest(new && propcmp(&p2, new), "non-empty property didn't copy correctly\n"); kfree(new->value); kfree(new->name); kfree(new); #endif } -static void __init of_selftest_changeset(void) +static void __init of_unittest_changeset(void) { #ifdef CONFIG_OF_DYNAMIC struct property *ppadd, padd = { .name = "prop-add", .length = 0, .value = "" }; @@ -497,51 +497,51 @@ static void __init of_selftest_changeset(void) struct of_changeset chgset; n1 = __of_node_dup(NULL, "/testcase-data/changeset/n1"); - selftest(n1, "testcase setup failure\n"); + unittest(n1, "testcase setup failure\n"); n2 = __of_node_dup(NULL, "/testcase-data/changeset/n2"); - selftest(n2, "testcase setup failure\n"); + unittest(n2, "testcase setup failure\n"); n21 = __of_node_dup(NULL, "%s/%s", "/testcase-data/changeset/n2", "n21"); - selftest(n21, "testcase setup failure %p\n", n21); + unittest(n21, "testcase setup failure %p\n", n21); nremove = of_find_node_by_path("/testcase-data/changeset/node-remove"); - selftest(nremove, "testcase setup failure\n"); + unittest(nremove, "testcase setup failure\n"); ppadd = __of_prop_dup(&padd, GFP_KERNEL); - selftest(ppadd, "testcase setup failure\n"); + unittest(ppadd, "testcase setup failure\n"); ppupdate = __of_prop_dup(&pupdate, GFP_KERNEL); - selftest(ppupdate, "testcase setup failure\n"); + unittest(ppupdate, "testcase setup failure\n"); parent = nremove->parent; n1->parent = parent; n2->parent = parent; n21->parent = n2; n2->child = n21; ppremove = of_find_property(parent, "prop-remove", NULL); - selftest(ppremove, "failed to find removal prop"); + unittest(ppremove, "failed to find removal prop"); of_changeset_init(&chgset); - selftest(!of_changeset_attach_node(&chgset, n1), "fail attach n1\n"); - selftest(!of_changeset_attach_node(&chgset, n2), "fail attach n2\n"); - selftest(!of_changeset_detach_node(&chgset, nremove), "fail remove node\n"); - selftest(!of_changeset_attach_node(&chgset, n21), "fail attach n21\n"); - selftest(!of_changeset_add_property(&chgset, parent, ppadd), "fail add prop\n"); - selftest(!of_changeset_update_property(&chgset, parent, ppupdate), "fail update prop\n"); - selftest(!of_changeset_remove_property(&chgset, parent, ppremove), "fail remove prop\n"); + unittest(!of_changeset_attach_node(&chgset, n1), "fail attach n1\n"); + unittest(!of_changeset_attach_node(&chgset, n2), "fail attach n2\n"); + unittest(!of_changeset_detach_node(&chgset, nremove), "fail remove node\n"); + unittest(!of_changeset_attach_node(&chgset, n21), "fail attach n21\n"); + unittest(!of_changeset_add_property(&chgset, parent, ppadd), "fail add prop\n"); + unittest(!of_changeset_update_property(&chgset, parent, ppupdate), "fail update prop\n"); + unittest(!of_changeset_remove_property(&chgset, parent, ppremove), "fail remove prop\n"); mutex_lock(&of_mutex); - selftest(!of_changeset_apply(&chgset), "apply failed\n"); + unittest(!of_changeset_apply(&chgset), "apply failed\n"); mutex_unlock(&of_mutex); /* Make sure node names are constructed correctly */ - selftest((np = of_find_node_by_path("/testcase-data/changeset/n2/n21")), + unittest((np = of_find_node_by_path("/testcase-data/changeset/n2/n21")), "'%s' not added\n", n21->full_name); of_node_put(np); mutex_lock(&of_mutex); - selftest(!of_changeset_revert(&chgset), "revert failed\n"); + unittest(!of_changeset_revert(&chgset), "revert failed\n"); mutex_unlock(&of_mutex); of_changeset_destroy(&chgset); #endif } -static void __init of_selftest_parse_interrupts(void) +static void __init of_unittest_parse_interrupts(void) { struct device_node *np; struct of_phandle_args args; @@ -563,7 +563,7 @@ static void __init of_selftest_parse_interrupts(void) passed &= (args.args_count == 1); passed &= (args.args[0] == (i + 1)); - selftest(passed, "index %i - data error on node %s rc=%i\n", + unittest(passed, "index %i - data error on node %s rc=%i\n", i, args.np->full_name, rc); } of_node_put(np); @@ -609,13 +609,13 @@ static void __init of_selftest_parse_interrupts(void) default: passed = false; } - selftest(passed, "index %i - data error on node %s rc=%i\n", + unittest(passed, "index %i - data error on node %s rc=%i\n", i, args.np->full_name, rc); } of_node_put(np); } -static void __init of_selftest_parse_interrupts_extended(void) +static void __init of_unittest_parse_interrupts_extended(void) { struct device_node *np; struct of_phandle_args args; @@ -679,7 +679,7 @@ static void __init of_selftest_parse_interrupts_extended(void) passed = false; } - selftest(passed, "index %i - data error on node %s rc=%i\n", + unittest(passed, "index %i - data error on node %s rc=%i\n", i, args.np->full_name, rc); } of_node_put(np); @@ -720,7 +720,7 @@ static struct { { .path = "/testcase-data/match-node/name9", .data = "K", }, }; -static void __init of_selftest_match_node(void) +static void __init of_unittest_match_node(void) { struct device_node *np; const struct of_device_id *match; @@ -729,32 +729,32 @@ static void __init of_selftest_match_node(void) for (i = 0; i < ARRAY_SIZE(match_node_tests); i++) { np = of_find_node_by_path(match_node_tests[i].path); if (!np) { - selftest(0, "missing testcase node %s\n", + unittest(0, "missing testcase node %s\n", match_node_tests[i].path); continue; } match = of_match_node(match_node_table, np); if (!match) { - selftest(0, "%s didn't match anything\n", + unittest(0, "%s didn't match anything\n", match_node_tests[i].path); continue; } if (strcmp(match->data, match_node_tests[i].data) != 0) { - selftest(0, "%s got wrong match. expected %s, got %s\n", + unittest(0, "%s got wrong match. expected %s, got %s\n", match_node_tests[i].path, match_node_tests[i].data, (const char *)match->data); continue; } - selftest(1, "passed"); + unittest(1, "passed"); } } static const struct platform_device_info test_bus_info = { .name = "unittest-bus", }; -static void __init of_selftest_platform_populate(void) +static void __init of_unittest_platform_populate(void) { int irq, rc; struct device_node *np, *child, *grandchild; @@ -770,26 +770,26 @@ static void __init of_selftest_platform_populate(void) /* Test that a missing irq domain returns -EPROBE_DEFER */ np = of_find_node_by_path("/testcase-data/testcase-device1"); pdev = of_find_device_by_node(np); - selftest(pdev, "device 1 creation failed\n"); + unittest(pdev, "device 1 creation failed\n"); irq = platform_get_irq(pdev, 0); - selftest(irq == -EPROBE_DEFER, "device deferred probe failed - %d\n", irq); + unittest(irq == -EPROBE_DEFER, "device deferred probe failed - %d\n", irq); /* Test that a parsing failure does not return -EPROBE_DEFER */ np = of_find_node_by_path("/testcase-data/testcase-device2"); pdev = of_find_device_by_node(np); - selftest(pdev, "device 2 creation failed\n"); + unittest(pdev, "device 2 creation failed\n"); irq = platform_get_irq(pdev, 0); - selftest(irq < 0 && irq != -EPROBE_DEFER, "device parsing error failed - %d\n", irq); + unittest(irq < 0 && irq != -EPROBE_DEFER, "device parsing error failed - %d\n", irq); np = of_find_node_by_path("/testcase-data/platform-tests"); - selftest(np, "No testcase data in device tree\n"); + unittest(np, "No testcase data in device tree\n"); if (!np) return; test_bus = platform_device_register_full(&test_bus_info); rc = PTR_ERR_OR_ZERO(test_bus); - selftest(!rc, "testbus registration failed; rc=%i\n", rc); + unittest(!rc, "testbus registration failed; rc=%i\n", rc); if (rc) return; test_bus->dev.of_node = np; @@ -797,7 +797,7 @@ static void __init of_selftest_platform_populate(void) of_platform_populate(np, match, NULL, &test_bus->dev); for_each_child_of_node(np, child) { for_each_child_of_node(child, grandchild) - selftest(of_find_device_by_node(grandchild), + unittest(of_find_device_by_node(grandchild), "Could not create device for node '%s'\n", grandchild->name); } @@ -805,7 +805,7 @@ static void __init of_selftest_platform_populate(void) of_platform_depopulate(&test_bus->dev); for_each_child_of_node(np, child) { for_each_child_of_node(child, grandchild) - selftest(!of_find_device_by_node(grandchild), + unittest(!of_find_device_by_node(grandchild), "device didn't get destroyed '%s'\n", grandchild->name); } @@ -875,13 +875,13 @@ static int attach_node_and_children(struct device_node *np) } /** - * selftest_data_add - Reads, copies data from + * unittest_data_add - Reads, copies data from * linked tree and attaches it to the live tree */ -static int __init selftest_data_add(void) +static int __init unittest_data_add(void) { - void *selftest_data; - struct device_node *selftest_data_node, *np; + void *unittest_data; + struct device_node *unittest_data_node, *np; /* * __dtb_testcases_begin[] and __dtb_testcases_end[] are magically * created by cmd_dt_S_dtb in scripts/Makefile.lib @@ -898,27 +898,27 @@ static int __init selftest_data_add(void) } /* creating copy */ - selftest_data = kmemdup(__dtb_testcases_begin, size, GFP_KERNEL); + unittest_data = kmemdup(__dtb_testcases_begin, size, GFP_KERNEL); - if (!selftest_data) { - pr_warn("%s: Failed to allocate memory for selftest_data; " + if (!unittest_data) { + pr_warn("%s: Failed to allocate memory for unittest_data; " "not running tests\n", __func__); return -ENOMEM; } - of_fdt_unflatten_tree(selftest_data, &selftest_data_node); - if (!selftest_data_node) { + of_fdt_unflatten_tree(unittest_data, &unittest_data_node); + if (!unittest_data_node) { pr_warn("%s: No tree to attach; not running tests\n", __func__); return -ENODATA; } - of_node_set_flag(selftest_data_node, OF_DETACHED); - rc = of_resolve_phandles(selftest_data_node); + of_node_set_flag(unittest_data_node, OF_DETACHED); + rc = of_resolve_phandles(unittest_data_node); if (rc) { pr_err("%s: Failed to resolve phandles (rc=%i)\n", __func__, rc); return -EINVAL; } if (!of_root) { - of_root = selftest_data_node; + of_root = unittest_data_node; for_each_of_allnodes(np) __of_attach_node_sysfs(np); of_aliases = of_find_node_by_path("/aliases"); @@ -927,7 +927,7 @@ static int __init selftest_data_add(void) } /* attach the sub-tree to live tree */ - np = selftest_data_node->child; + np = unittest_data_node->child; while (np) { struct device_node *next = np->sibling; @@ -940,7 +940,7 @@ static int __init selftest_data_add(void) #ifdef CONFIG_OF_OVERLAY -static int selftest_probe(struct platform_device *pdev) +static int unittest_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct device_node *np = dev->of_node; @@ -958,7 +958,7 @@ static int selftest_probe(struct platform_device *pdev) return 0; } -static int selftest_remove(struct platform_device *pdev) +static int unittest_remove(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct device_node *np = dev->of_node; @@ -967,18 +967,18 @@ static int selftest_remove(struct platform_device *pdev) return 0; } -static const struct of_device_id selftest_match[] = { - { .compatible = "selftest", }, +static const struct of_device_id unittest_match[] = { + { .compatible = "unittest", }, {}, }; -static struct platform_driver selftest_driver = { - .probe = selftest_probe, - .remove = selftest_remove, +static struct platform_driver unittest_driver = { + .probe = unittest_probe, + .remove = unittest_remove, .driver = { - .name = "selftest", + .name = "unittest", .owner = THIS_MODULE, - .of_match_table = of_match_ptr(selftest_match), + .of_match_table = of_match_ptr(unittest_match), }, }; @@ -1060,7 +1060,7 @@ static int of_path_device_type_exists(const char *path, return 0; } -static const char *selftest_path(int nr, enum overlay_type ovtype) +static const char *unittest_path(int nr, enum overlay_type ovtype) { const char *base; static char buf[256]; @@ -1076,16 +1076,16 @@ static const char *selftest_path(int nr, enum overlay_type ovtype) buf[0] = '\0'; return buf; } - snprintf(buf, sizeof(buf) - 1, "%s/test-selftest%d", base, nr); + snprintf(buf, sizeof(buf) - 1, "%s/test-unittest%d", base, nr); buf[sizeof(buf) - 1] = '\0'; return buf; } -static int of_selftest_device_exists(int selftest_nr, enum overlay_type ovtype) +static int of_unittest_device_exists(int unittest_nr, enum overlay_type ovtype) { const char *path; - path = selftest_path(selftest_nr, ovtype); + path = unittest_path(unittest_nr, ovtype); switch (ovtype) { case PDEV_OVERLAY: @@ -1109,7 +1109,7 @@ static const char *overlay_path(int nr) static const char *bus_path = "/testcase-data/overlay-node/test-bus"; -static int of_selftest_apply_overlay(int selftest_nr, int overlay_nr, +static int of_unittest_apply_overlay(int unittest_nr, int overlay_nr, int *overlay_id) { struct device_node *np = NULL; @@ -1117,7 +1117,7 @@ static int of_selftest_apply_overlay(int selftest_nr, int overlay_nr, np = of_find_node_by_path(overlay_path(overlay_nr)); if (np == NULL) { - selftest(0, "could not find overlay node @\"%s\"\n", + unittest(0, "could not find overlay node @\"%s\"\n", overlay_path(overlay_nr)); ret = -EINVAL; goto out; @@ -1125,7 +1125,7 @@ static int of_selftest_apply_overlay(int selftest_nr, int overlay_nr, ret = of_overlay_create(np); if (ret < 0) { - selftest(0, "could not create overlay from \"%s\"\n", + unittest(0, "could not create overlay from \"%s\"\n", overlay_path(overlay_nr)); goto out; } @@ -1143,31 +1143,31 @@ out: } /* apply an overlay while checking before and after states */ -static int of_selftest_apply_overlay_check(int overlay_nr, int selftest_nr, +static int of_unittest_apply_overlay_check(int overlay_nr, int unittest_nr, int before, int after, enum overlay_type ovtype) { int ret; - /* selftest device must not be in before state */ - if (of_selftest_device_exists(selftest_nr, ovtype) != before) { - selftest(0, "overlay @\"%s\" with device @\"%s\" %s\n", + /* unittest device must not be in before state */ + if (of_unittest_device_exists(unittest_nr, ovtype) != before) { + unittest(0, "overlay @\"%s\" with device @\"%s\" %s\n", overlay_path(overlay_nr), - selftest_path(selftest_nr, ovtype), + unittest_path(unittest_nr, ovtype), !before ? "enabled" : "disabled"); return -EINVAL; } - ret = of_selftest_apply_overlay(overlay_nr, selftest_nr, NULL); + ret = of_unittest_apply_overlay(overlay_nr, unittest_nr, NULL); if (ret != 0) { - /* of_selftest_apply_overlay already called selftest() */ + /* of_unittest_apply_overlay already called unittest() */ return ret; } - /* selftest device must be to set to after state */ - if (of_selftest_device_exists(selftest_nr, ovtype) != after) { - selftest(0, "overlay @\"%s\" failed to create @\"%s\" %s\n", + /* unittest device must be to set to after state */ + if (of_unittest_device_exists(unittest_nr, ovtype) != after) { + unittest(0, "overlay @\"%s\" failed to create @\"%s\" %s\n", overlay_path(overlay_nr), - selftest_path(selftest_nr, ovtype), + unittest_path(unittest_nr, ovtype), !after ? "enabled" : "disabled"); return -EINVAL; } @@ -1176,50 +1176,50 @@ static int of_selftest_apply_overlay_check(int overlay_nr, int selftest_nr, } /* apply an overlay and then revert it while checking before, after states */ -static int of_selftest_apply_revert_overlay_check(int overlay_nr, - int selftest_nr, int before, int after, +static int of_unittest_apply_revert_overlay_check(int overlay_nr, + int unittest_nr, int before, int after, enum overlay_type ovtype) { int ret, ov_id; - /* selftest device must be in before state */ - if (of_selftest_device_exists(selftest_nr, ovtype) != before) { - selftest(0, "overlay @\"%s\" with device @\"%s\" %s\n", + /* unittest device must be in before state */ + if (of_unittest_device_exists(unittest_nr, ovtype) != before) { + unittest(0, "overlay @\"%s\" with device @\"%s\" %s\n", overlay_path(overlay_nr), - selftest_path(selftest_nr, ovtype), + unittest_path(unittest_nr, ovtype), !before ? "enabled" : "disabled"); return -EINVAL; } /* apply the overlay */ - ret = of_selftest_apply_overlay(overlay_nr, selftest_nr, &ov_id); + ret = of_unittest_apply_overlay(overlay_nr, unittest_nr, &ov_id); if (ret != 0) { - /* of_selftest_apply_overlay already called selftest() */ + /* of_unittest_apply_overlay already called unittest() */ return ret; } - /* selftest device must be in after state */ - if (of_selftest_device_exists(selftest_nr, ovtype) != after) { - selftest(0, "overlay @\"%s\" failed to create @\"%s\" %s\n", + /* unittest device must be in after state */ + if (of_unittest_device_exists(unittest_nr, ovtype) != after) { + unittest(0, "overlay @\"%s\" failed to create @\"%s\" %s\n", overlay_path(overlay_nr), - selftest_path(selftest_nr, ovtype), + unittest_path(unittest_nr, ovtype), !after ? "enabled" : "disabled"); return -EINVAL; } ret = of_overlay_destroy(ov_id); if (ret != 0) { - selftest(0, "overlay @\"%s\" failed to be destroyed @\"%s\"\n", + unittest(0, "overlay @\"%s\" failed to be destroyed @\"%s\"\n", overlay_path(overlay_nr), - selftest_path(selftest_nr, ovtype)); + unittest_path(unittest_nr, ovtype)); return ret; } - /* selftest device must be again in before state */ - if (of_selftest_device_exists(selftest_nr, PDEV_OVERLAY) != before) { - selftest(0, "overlay @\"%s\" with device @\"%s\" %s\n", + /* unittest device must be again in before state */ + if (of_unittest_device_exists(unittest_nr, PDEV_OVERLAY) != before) { + unittest(0, "overlay @\"%s\" with device @\"%s\" %s\n", overlay_path(overlay_nr), - selftest_path(selftest_nr, ovtype), + unittest_path(unittest_nr, ovtype), !before ? "enabled" : "disabled"); return -EINVAL; } @@ -1228,98 +1228,98 @@ static int of_selftest_apply_revert_overlay_check(int overlay_nr, } /* test activation of device */ |