From 2f10ca5237ae282c4c132daf9f612a1b6df8e3d6 Mon Sep 17 00:00:00 2001 From: Stefan Leichter Date: Tue, 4 Mar 2003 04:34:57 +0000 Subject: [PATCH] Added tests for GetPrivateProfileInt. --- dlls/kernel/tests/.cvsignore | 1 + dlls/kernel/tests/Makefile.in | 1 + dlls/kernel/tests/profile.c | 89 +++++++++++++++++++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 dlls/kernel/tests/profile.c diff --git a/dlls/kernel/tests/.cvsignore b/dlls/kernel/tests/.cvsignore index 56a57cf518f..2c6866f4122 100644 --- a/dlls/kernel/tests/.cvsignore +++ b/dlls/kernel/tests/.cvsignore @@ -13,5 +13,6 @@ locale.ok path.ok pipe.ok process.ok +profile.ok testlist.c thread.ok diff --git a/dlls/kernel/tests/Makefile.in b/dlls/kernel/tests/Makefile.in index 76d9d39ddba..e5890c7740c 100644 --- a/dlls/kernel/tests/Makefile.in +++ b/dlls/kernel/tests/Makefile.in @@ -19,6 +19,7 @@ CTESTS = \ path.c \ pipe.c \ process.c \ + profile.c \ thread.c @MAKE_TEST_RULES@ diff --git a/dlls/kernel/tests/profile.c b/dlls/kernel/tests/profile.c new file mode 100644 index 00000000000..6b0038722a7 --- /dev/null +++ b/dlls/kernel/tests/profile.c @@ -0,0 +1,89 @@ +/* + * Unit tests for profile functions + * + * Copyright (c) 2003 Stefan Leichter + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "wine/test.h" +#include "winbase.h" +#include "windows.h" + +#define KEY "ProfileInt" +#define SECTION "Test" +#define TESTFILE ".\\testwine.ini" + +struct _profileInt { + LPCSTR section; + LPCSTR key; + LPCSTR value; + LPCSTR iniFile; + INT defaultVal; + UINT result; +}; + +static void test_profile_int(void) +{ + struct _profileInt profileInt[]={ + { NULL, NULL, NULL, NULL, 70, 0 }, /* 0 */ + { NULL, NULL, NULL, TESTFILE, -1, 4294967295}, + { NULL, NULL, NULL, TESTFILE, 1, 1 }, + { SECTION, NULL, NULL, TESTFILE, -1, 4294967295}, + { SECTION, NULL, NULL, TESTFILE, 1, 1 }, + { NULL, KEY, NULL, TESTFILE, -1, 4294967295}, /* 5 */ + { NULL, KEY, NULL, TESTFILE, 1, 1 }, + { SECTION, KEY, NULL, TESTFILE, -1, 4294967295}, + { SECTION, KEY, NULL, TESTFILE, 1, 1 }, + { SECTION, KEY, "-1", TESTFILE, -1, 4294967295}, + { SECTION, KEY, "-1", TESTFILE, 1, 4294967295}, /* 10 */ + { SECTION, KEY, "1", TESTFILE, -1, 1 }, + { SECTION, KEY, "1", TESTFILE, 1, 1 }, + { SECTION, KEY, "+1", TESTFILE, -1, 1 }, + { SECTION, KEY, "+1", TESTFILE, 1, 1 }, + { SECTION, KEY, "4294967296", TESTFILE, -1, 0 }, /* 15 */ + { SECTION, KEY, "4294967296", TESTFILE, 1, 0 }, + { SECTION, KEY, "4294967297", TESTFILE, -1, 1 }, + { SECTION, KEY, "4294967297", TESTFILE, 1, 1 }, + { SECTION, KEY, "-4294967297", TESTFILE, -1, 4294967295}, + { SECTION, KEY, "-4294967297", TESTFILE, 1, 4294967295}, /* 20 */ + { SECTION, KEY, "42A94967297", TESTFILE, -1, 42 }, + { SECTION, KEY, "42A94967297", TESTFILE, 1, 42 }, + { SECTION, KEY, "B4294967297", TESTFILE, -1, 0 }, + { SECTION, KEY, "B4294967297", TESTFILE, 1, 0 }, + }; + int i, num_test = (sizeof(profileInt)/sizeof(struct _profileInt)); + UINT res; + + DeleteFileA( TESTFILE); + + for (i=0; i < num_test; i++) { + if (profileInt[i].value) + WritePrivateProfileStringA(SECTION, KEY, profileInt[i].value, + profileInt[i].iniFile); + + res = GetPrivateProfileIntA(profileInt[i].section, profileInt[i].key, + profileInt[i].defaultVal, profileInt[i].iniFile); + ok(res == profileInt[i].result, "test<%02d>: ret<%010u> exp<%010u>", + i, res, profileInt[i].result); + } + + DeleteFileA( TESTFILE); +} + +START_TEST(profile) +{ + test_profile_int(); +}