/** * @brief tests the list module * @return 0 if success * @return 1 if failture */ int test_list() { if(test_list_create_destroy()) return 1; if(test_list_push_pop()) return 1; if(test_list_is_empty()) return 1; if(test_list_length()) return 1; printf("list test: all successful\n"); return 0; }
static void pointer_tests(void) { int a[] = {1, 2, 3, 4}; char p1[] = "11"; test_list_t *list = make_list(make_list(make_list(null_list()))); test_us_t tus = {{p1}}; int *pa[4]; puints_t pus; cpuints_t cpus; short bstr_data[] = { 5, 'H', 'e', 'l', 'l', 'o' }; bstr_t bstr = &bstr_data[1], bstr2; name_t name; void *buffer; int *pa2; s123_t *s123; int val = 42; ok(test_list_length(list) == 3, "RPC test_list_length\n"); ok(square_puint(p1) == 121, "RPC square_puint\n"); pus.n = 4; pus.ps = HeapAlloc(GetProcessHeap(), 0, pus.n * sizeof pus.ps[0]); pus.ps[0] = xstrdup("5"); pus.ps[1] = xstrdup("6"); pus.ps[2] = xstrdup("7"); pus.ps[3] = xstrdup("8"); ok(sum_puints(&pus) == 26, "RPC sum_puints\n"); HeapFree(GetProcessHeap(), 0, pus.ps[0]); HeapFree(GetProcessHeap(), 0, pus.ps[1]); HeapFree(GetProcessHeap(), 0, pus.ps[2]); HeapFree(GetProcessHeap(), 0, pus.ps[3]); HeapFree(GetProcessHeap(), 0, pus.ps); cpus.n = 4; cpus.ps = HeapAlloc(GetProcessHeap(), 0, cpus.n * sizeof cpus.ps[0]); cpus.ps[0] = xstrdup("5"); cpus.ps[1] = xstrdup("6"); cpus.ps[2] = xstrdup("7"); cpus.ps[3] = xstrdup("8"); ok(sum_cpuints(&cpus) == 26, "RPC sum_puints\n"); HeapFree(GetProcessHeap(), 0, cpus.ps[0]); HeapFree(GetProcessHeap(), 0, cpus.ps[1]); HeapFree(GetProcessHeap(), 0, cpus.ps[2]); HeapFree(GetProcessHeap(), 0, cpus.ps[3]); HeapFree(GetProcessHeap(), 0, cpus.ps); ok(square_test_us(&tus) == 121, "RPC square_test_us\n"); pa[0] = &a[0]; pa[1] = &a[1]; pa[2] = &a[2]; ok(sum_parr(pa) == 6, "RPC sum_parr\n"); pa[0] = &a[0]; pa[1] = &a[1]; pa[2] = &a[2]; pa[3] = &a[3]; ok(sum_pcarr(pa, 4) == 10, "RPC sum_pcarr\n"); ok(hash_bstr(bstr) == s_hash_bstr(bstr), "RPC hash_bstr_data\n"); get_a_bstr(&bstr); s_get_a_bstr(&bstr2); ok(!lstrcmpW((LPCWSTR)bstr, (LPCWSTR)bstr2), "bstr mismatch\n"); HeapFree(GetProcessHeap(), 0, bstr - 1); HeapFree(GetProcessHeap(), 0, bstr2 - 1); free_list(list); if (!old_windows_version) { name.size = 10; name.name = buffer = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, name.size); get_name(&name); ok(name.name == buffer, "[in,out] pointer should have stayed as %p but instead changed to %p\n", name.name, buffer); ok(!strcmp(name.name, "Jeremy Wh"), "name didn't unmarshall properly, expected \"Jeremy Wh\", but got \"%s\"\n", name.name); HeapFree(GetProcessHeap(), 0, name.name); } pa2 = a; ok(sum_pcarr2(4, &pa2) == 10, "RPC sum_pcarr2\n"); s123 = get_s123(); ok(s123->f1 == 1 && s123->f2 == 2 && s123->f3 == 3, "RPC get_s123\n"); MIDL_user_free(s123); full_pointer_test(&val, &val); full_pointer_null_test(&val, NULL); }