Paul Vriens : kernel32/profile:
Some parameter tests for GetPrivateProfileSectionA.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Mar 28 06:41:49 CDT 2007
Module: wine
Branch: master
Commit: 5de163f9d440dcc992bb41c753f1ff4f85d6aa6f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5de163f9d440dcc992bb41c753f1ff4f85d6aa6f
Author: Paul Vriens <paul.vriens.wine at gmail.com>
Date: Tue Mar 27 22:08:20 2007 +0200
kernel32/profile: Some parameter tests for GetPrivateProfileSectionA.
---
dlls/kernel32/tests/profile.c | 35 ++++++++++++++++++++++++++++++++---
1 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/dlls/kernel32/tests/profile.c b/dlls/kernel32/tests/profile.c
index 0893c1c..628a40b 100644
--- a/dlls/kernel32/tests/profile.c
+++ b/dlls/kernel32/tests/profile.c
@@ -135,7 +135,7 @@ static void test_profile_sections(void)
DWORD count;
char buf[100];
char *p;
- static const char content[]="[s]\r\nname1=val1\r\nname2=\r\nname3\r\nname4=val4\r\n";
+ static const char content[]="[section1]\r\nname1=val1\r\nname2=\r\nname3\r\nname4=val4\r\n[section2]\r\n";
static const char testfile4[]=".\\testwine4.ini";
DeleteFileA( testfile4 );
@@ -145,12 +145,41 @@ static void test_profile_sections(void)
WriteFile( h, content, sizeof(content), &count, NULL);
CloseHandle( h);
- ret=GetPrivateProfileSectionA("s", buf, sizeof(buf), testfile4);
+ /* Some parameter checking */
+ SetLastError(0xdeadbeef);
+ ret = GetPrivateProfileSectionA( NULL, NULL, 0, NULL );
+ ok( ret == 0, "expected return size 0, got %d\n", ret );
+ ok( GetLastError() == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
+
+ SetLastError(0xdeadbeef);
+ ret = GetPrivateProfileSectionA( NULL, NULL, 0, testfile4 );
+ ok( ret == 0, "expected return size 0, got %d\n", ret );
+ ok( GetLastError() == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
+
+ SetLastError(0xdeadbeef);
+ ret = GetPrivateProfileSectionA( "section1", NULL, 0, testfile4 );
+ ok( ret == 0, "expected return size 0, got %d\n", ret );
+ ok( GetLastError() == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
+
+ SetLastError(0xdeadbeef);
+ ret = GetPrivateProfileSectionA( NULL, buf, sizeof(buf), testfile4 );
+ ok( ret == 0, "expected return size 0, got %d\n", ret );
+ ok( GetLastError() == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
+
+ SetLastError(0xdeadbeef);
+ ret = GetPrivateProfileSectionA( "section1", buf, sizeof(buf), NULL );
+ ok( ret == 0, "expected return size 0, got %d\n", ret );
+ todo_wine
+ ok( GetLastError() == ERROR_FILE_NOT_FOUND, "expected ERROR_FILE_NOT_FOUND, got %d\n", GetLastError());
+
+ /* And a real one */
+ ret=GetPrivateProfileSectionA("section1", buf, sizeof(buf), testfile4);
for( p = buf + strlen(buf) + 1; *p;p += strlen(p)+1)
p[-1] = ',';
- /* and test */
ok( ret == 35 && !strcmp( buf, "name1=val1,name2=,name3,name4=val4"), "wrong section returned(%d): %s\n",
ret, buf);
+ ok( buf[ret-1] == 0 && buf[ret] == 0, "returned buffer not terminated with double-null\n" );
+ ok( GetLastError() == S_OK, "expected S_OK, got %d\n", GetLastError());
DeleteFileA( testfile4 );
}
More information about the wine-cvs
mailing list