From dffdb8e7e21584f06fbea277cee5456e4822033b Mon Sep 17 00:00:00 2001 From: Dmitry Kislyuk Date: Thu, 23 Apr 2009 02:44:56 -0300 Subject: kernel32/tests: Added last error tests for GetPrivateProfileString --- dlls/kernel32/tests/profile.c | 124 ++++++++++++++++++++++++++++++++++++++++- 1 files changed, 122 insertions(+), 2 deletions(-) diff --git a/dlls/kernel32/tests/profile.c b/dlls/kernel32/tests/profile.c index 142da40..5b0103d 100644 --- a/dlls/kernel32/tests/profile.c +++ b/dlls/kernel32/tests/profile.c @@ -522,8 +522,12 @@ static void test_GetPrivateProfileString(const char *content, const char *descri /* lpAppName is NULL */ memset(buf, 0xc, sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA(NULL, "name1", "default", buf, MAX_PATH, filename); + ok( GetLastError() == ERROR_SUCCESS || + broken(GetLastError() == 0xdeadbeef), /* Win9x, ME */ + "expected ERROR_SUCCESS, got %d\n", GetLastError()); ok(ret == 18 || broken(ret == 19), /* Win9x and WinME */ "Expected 18, got %d\n", ret); @@ -534,8 +538,12 @@ static void test_GetPrivateProfileString(const char *content, const char *descri /* lpAppName is empty */ memset(buf, 0xc, sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA(emptystr, "name1", "default", buf, MAX_PATH, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 7, "Expected 7, got %d\n", ret); ok(!lstrcmpA(buf, "default"), "Expected \"default\", got \"%s\"\n", buf); ok(emptystr_ok(emptystr), "AppName modified\n"); @@ -543,16 +551,24 @@ static void test_GetPrivateProfileString(const char *content, const char *descri /* lpAppName is missing */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("notasection", "name1", "default", buf, MAX_PATH, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 7, "Expected 7, got %d\n", ret); ok(!lstrcmpA(buf, "default"), "Expected \"default\", got \"%s\"\n", buf); /* lpAppName is empty, lpDefault is NULL */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA(emptystr, "name1", NULL, buf, MAX_PATH, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 0, "Expected 0, got %d\n", ret); ok(!lstrcmpA(buf, "") || broken(!lstrcmpA(buf, "kumquat")), /* Win9x, WinME */ @@ -562,8 +578,12 @@ static void test_GetPrivateProfileString(const char *content, const char *descri /* lpAppName is empty, lpDefault is empty */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA(emptystr, "name1", "", buf, MAX_PATH, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 0, "Expected 0, got %d\n", ret); ok(!lstrcmpA(buf, ""), "Expected \"\", got \"%s\"\n", buf); ok(emptystr_ok(emptystr), "AppName modified\n"); @@ -573,8 +593,12 @@ static void test_GetPrivateProfileString(const char *content, const char *descri lstrcpyA(buf, "kumquat"); /* lpDefault must be writable (trailing blanks are removed inplace in win9x) */ lstrcpyA(def_val, "default "); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA(emptystr, "name1", def_val, buf, MAX_PATH, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 7, "Expected 7, got %d\n", ret); ok(!lstrcmpA(buf, "default"), "Expected \"default\", got \"%s\"\n", buf); ok(emptystr_ok(emptystr), "AppName modified\n"); @@ -584,8 +608,12 @@ static void test_GetPrivateProfileString(const char *content, const char *descri lstrcpyA(buf, "kumquat"); /* lpDefault must be writable (trailing blanks are removed inplace in win9x) */ lstrcpyA(def_val, "one two "); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA(emptystr, "name1", def_val, buf, MAX_PATH, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 7, "Expected 7, got %d\n", ret); ok(!lstrcmpA(buf, "one two"), "Expected \"one two\", got \"%s\"\n", buf); ok(emptystr_ok(emptystr), "AppName modified\n"); @@ -593,8 +621,12 @@ static void test_GetPrivateProfileString(const char *content, const char *descri /* lpAppName is empty, blank character but not trailing in lpDefault */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA(emptystr, "name1", "one two", buf, MAX_PATH, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 7, "Expected 7, got %d\n", ret); ok(!lstrcmpA(buf, "one two"), "Expected \"one two\", got \"%s\"\n", buf); ok(emptystr_ok(emptystr), "AppName modified\n"); @@ -602,8 +634,12 @@ static void test_GetPrivateProfileString(const char *content, const char *descri /* lpKeyName is NULL */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", NULL, "default", buf, MAX_PATH, filename); + ok( GetLastError() == ERROR_SUCCESS || + broken(GetLastError() == 0xdeadbeef), /* Win9x, ME */ + "expected ERROR_SUCCESS, got %d\n", GetLastError()); ok(ret == 18, "Expected 18, got %d\n", ret); ok(!memcmp(buf, "name1\0name2\0name4\0", ret + 1), "Expected \"name1\\0name2\\0name4\\0\", got \"%s\"\n", buf); @@ -611,8 +647,12 @@ static void test_GetPrivateProfileString(const char *content, const char *descri /* lpKeyName is empty */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", emptystr, "default", buf, MAX_PATH, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 7, "Expected 7, got %d\n", ret); ok(!lstrcmpA(buf, "default"), "Expected \"default\", got \"%s\"\n", buf); ok(emptystr_ok(emptystr), "KeyName modified\n"); @@ -620,16 +660,24 @@ static void test_GetPrivateProfileString(const char *content, const char *descri /* lpKeyName is missing */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", "notakey", "default", buf, MAX_PATH, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 7, "Expected 7, got %d\n", ret); ok(!lstrcmpA(buf, "default"), "Expected \"default\", got \"%s\"\n", buf); /* lpKeyName is empty, lpDefault is NULL */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", emptystr, NULL, buf, MAX_PATH, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 0, "Expected 0, got %d\n", ret); ok(!lstrcmpA(buf, "") || broken(!lstrcmpA(buf, "kumquat")), /* Win9x, WinME */ @@ -639,8 +687,12 @@ static void test_GetPrivateProfileString(const char *content, const char *descri /* lpKeyName is empty, lpDefault is empty */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", emptystr, "", buf, MAX_PATH, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 0, "Expected 0, got %d\n", ret); ok(!lstrcmpA(buf, ""), "Expected \"\", got \"%s\"\n", buf); ok(emptystr_ok(emptystr), "KeyName modified\n"); @@ -650,8 +702,12 @@ static void test_GetPrivateProfileString(const char *content, const char *descri lstrcpyA(buf, "kumquat"); /* lpDefault must be writable (trailing blanks are removed inplace in win9x) */ lstrcpyA(def_val, "default "); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", emptystr, def_val, buf, MAX_PATH, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 7, "Expected 7, got %d\n", ret); ok(!lstrcmpA(buf, "default"), "Expected \"default\", got \"%s\"\n", buf); ok(emptystr_ok(emptystr), "KeyName modified\n"); @@ -666,8 +722,13 @@ static void test_GetPrivateProfileString(const char *content, const char *descri /* lpFileName is NULL */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", "name1", "default", buf, MAX_PATH, NULL); + todo_wine + ok( GetLastError() == 0xdeadbeef || + broken(GetLastError() == ERROR_INVALID_PARAMETER), /* Win9x, ME */ + "expected 0xdeadbeef, got %d\n", GetLastError()); ok(ret == 7 || broken(ret == 0), /* Win9x, WinME */ "Expected 7, got %d\n", ret); @@ -678,64 +739,98 @@ static void test_GetPrivateProfileString(const char *content, const char *descri /* lpFileName is empty */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", "name1", "default", buf, MAX_PATH, ""); + todo_wine + ok( GetLastError() == 0xdeadbeef || + broken(GetLastError() == ERROR_PATH_NOT_FOUND), /* Win9x, ME */ + "expected 0xdeadbeef, got %d\n", GetLastError()); ok(ret == 7, "Expected 7, got %d\n", ret); ok(!lstrcmpA(buf, "default"), "Expected \"default\", got \"%s\"\n", buf); /* lpFileName is nonexistent */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", "name1", "default", buf, MAX_PATH, "nonexistent"); + todo_wine + ok( GetLastError() == 0xdeadbeef || + broken(GetLastError() == ERROR_FILE_NOT_FOUND), /* Win9x, ME */ + "expected 0xdeadbeef, got %d\n", GetLastError()); ok(ret == 7, "Expected 7, got %d\n", ret); ok(!lstrcmpA(buf, "default"), "Expected \"default\", got \"%s\"\n", buf); /* nSize is 0 */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", "name1", "default", buf, 0, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 0, "Expected 0, got %d\n", ret); ok(!lstrcmpA(buf, "kumquat"), "Expected buf to be unchanged, got \"%s\"\n", buf); /* nSize is exact size of output */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", "name1", "default", buf, 4, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 3, "Expected 3, got %d\n", ret); ok(!lstrcmpA(buf, "val"), "Expected \"val\", got \"%s\"\n", buf); /* nSize has room for NULL terminator */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", "name1", "default", buf, 5, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 4, "Expected 4, got %d\n", ret); ok(!lstrcmpA(buf, "val1"), "Expected \"val1\", got \"%s\"\n", buf); /* output is 1 character */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", "name4", "default", buf, MAX_PATH, filename); + ok( GetLastError() == ERROR_SUCCESS || + broken(GetLastError() == 0xdeadbeef), /* Win9x, ME */ + "expected ERROR_SUCCESS, got %d\n", GetLastError()); ok(ret == 1, "Expected 1, got %d\n", ret); ok(!lstrcmpA(buf, "a"), "Expected \"a\", got \"%s\"\n", buf); /* output is 1 character, no room for NULL terminator */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", "name4", "default", buf, 1, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 0, "Expected 0, got %d\n", ret); ok(!lstrcmpA(buf, ""), "Expected \"\", got \"%s\"\n", buf); /* lpAppName is NULL, not enough room for final section name */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA(NULL, "name1", "default", buf, 16, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 14, "Expected 14, got %d\n", ret); len = lstrlenA("section1") + 2 * sizeof(CHAR); todo_wine @@ -746,8 +841,12 @@ static void test_GetPrivateProfileString(const char *content, const char *descri /* lpKeyName is NULL, not enough room for final key name */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", NULL, "default", buf, 16, filename); + todo_wine + ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", + GetLastError()); ok(ret == 14, "Expected 14, got %d\n", ret); todo_wine ok(!memcmp(buf, "name1\0name2\0na\0\0", ret + 2) || @@ -757,24 +856,37 @@ static void test_GetPrivateProfileString(const char *content, const char *descri /* key value has quotation marks which are stripped */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", "name2", "default", buf, MAX_PATH, filename); + ok( GetLastError() == ERROR_SUCCESS || + broken(GetLastError() == 0xdeadbeef), /* Win9x, ME */ + "expected ERROR_SUCCESS, got %d\n", GetLastError()); ok(ret == 4, "Expected 4, got %d\n", ret); ok(!lstrcmpA(buf, "val2"), "Expected \"val2\", got \"%s\"\n", buf); /* case does not match */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", "NaMe1", "default", buf, MAX_PATH, filename); + ok( GetLastError() == ERROR_SUCCESS || + broken(GetLastError() == 0xdeadbeef), /* Win9x, ME */ + "expected ERROR_SUCCESS, got %d\n", GetLastError()); ok(ret == 4, "Expected 4, got %d\n", ret); ok(!lstrcmpA(buf, "val1"), "Expected \"val1\", got \"%s\"\n", buf); /* only filename is used */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", "NaMe1", "default", buf, MAX_PATH, "winetest.ini"); + todo_wine + ok( GetLastError() == 0xdeadbeef || + broken(GetLastError() == ERROR_FILE_NOT_FOUND), /* Win9x, ME */ + "expected 0xdeadbeef, got %d\n", GetLastError()); ok(ret == 7, "Expected 7, got %d\n", ret); ok(!lstrcmpA(buf, "default"), "Expected \"default\", got \"%s\"\n", buf); @@ -793,16 +905,24 @@ static void test_GetPrivateProfileString(const char *content, const char *descri /* only filename is used, file exists in windows directory */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", "NaMe1", "default", buf, MAX_PATH, tempfile); + ok( GetLastError() == ERROR_SUCCESS || + broken(GetLastError() == 0xdeadbeef), /* Win9x, ME */ + "expected ERROR_SUCCESS, got %d\n", GetLastError()); ok(ret == 4, "Expected 4, got %d\n", ret); ok(!lstrcmpA(buf, "val1"), "Expected \"val1\", got \"%s\"\n", buf); /* successful case */ memset(buf, 0xc,sizeof(buf)); lstrcpyA(buf, "kumquat"); + SetLastError(0xdeadbeef); ret = GetPrivateProfileStringA("section1", "name1", "default", buf, MAX_PATH, filename); + ok( GetLastError() == ERROR_SUCCESS || + broken(GetLastError() == 0xdeadbeef), /* Win9x, ME */ + "expected ERROR_SUCCESS, got %d\n", GetLastError()); ok(ret == 4, "Expected 4, got %d\n", ret); ok(!lstrcmpA(buf, "val1"), "Expected \"val1\", got \"%s\"\n", buf); @@ -811,11 +931,11 @@ static void test_GetPrivateProfileString(const char *content, const char *descri SetLastError(0xdeadbeef); ret=GetPrivateProfileStringA("section2", "DoesntExist", "", buf, MAX_PATH, filename); - ok( ret == 0, "expected return size 0, got %d\n", ret ); - ok(!lstrcmpA(buf, ""), "Expected \"\", got \"%s\"\n", buf); todo_wine ok( GetLastError() == 0xdeadbeef , "expected 0xdeadbeef, got %d\n", GetLastError()); + ok( ret == 0, "expected return size 0, got %d\n", ret ); + ok(!lstrcmpA(buf, ""), "Expected \"\", got \"%s\"\n", buf); DeleteFileA(path); -- 1.5.6.3