diff --git a/src/storage/get.c b/src/storage/get.c index 1e4274b..39aba82 100644 --- a/src/storage/get.c +++ b/src/storage/get.c @@ -47,6 +47,9 @@ storageGet( memcpy(*data, value.dptr, value.dsize); free(value.dptr); + } else { + *data = NULL; + *ndata = 0; } } diff --git a/src/usertest.c b/src/usertest.c index 089ff3d..dafbee7 100644 --- a/src/usertest.c +++ b/src/usertest.c @@ -11,14 +11,46 @@ #include "utils/memory.h" +void +printUser(Storage users, const char * key, size_t nkey) +{ + User user = new(User, NULL); + + user->email = (char *)key, + user->nemail = &nkey; + + if (NULL == userLoad(user, users)) { + fprintf(stderr, "can't find user: %s\n", key); + } else { + puts("found user:"); + puts(user->email); + puts(user->firstname); + puts(user->surname); + + delete(user); + } +} + +void +insertUser( + Storage users, + const char * email, size_t nemail, + const char * firstname, size_t nfirstname, + const char * surname, size_t nsurname) +{ + User insert = new(User, + email, nemail, + firstname, nfirstname, + surname, nsurname); + + userSave(insert, users); + delete(insert); +} + int main(int argc, char * argv[]) { Storage users = new(Storage, CSTRA("./users.db")); - User user; - User georg; - //User steffi; - size_t nuser; if (NULL == users) { fprintf(stderr, "%s\n", gdbm_strerror(gdbm_errno)); @@ -26,29 +58,40 @@ main(int argc, char * argv[]) return 1; } - georg = new(User, + insertUser( + users, CSTRA("georg@steffers.org"), CSTRA("Georg"), CSTRA("Hopp")); + insertUser( + users, + CSTRA("drachenfrau1982@gmx.net"), + CSTRA("Gundula"), + CSTRA("Hopp")); - userSave(georg, users); - delete(georg); + printUser(users, CSTRA("foo@bar.de")); + puts(""); + printUser(users, CSTRA("drachenfrau1982@gmx.net")); + puts(""); + printUser(users, CSTRA("georg@steffers.org")); - user = new(User, NULL); - user->email = "georg@steffers.org"; - nuser = sizeof("georg@steffers.org") - 1; - user->nemail = &nuser; + delete(users); - if (NULL == userLoad(user, users)) { - fprintf(stderr, "can't find user"); - } else { - puts("found user:"); - puts(user->email); - puts(user->firstname); - puts(user->surname); - } + users = new(Storage, CSTRA("./users.db")); + + insertUser( + users, + CSTRA("drachenfrau1982@gmx.net"), + CSTRA("Stefanie"), + CSTRA("Hopp")); + + puts(""); + printUser(users, CSTRA("foo@bar.de")); + puts(""); + printUser(users, CSTRA("drachenfrau1982@gmx.net")); + puts(""); + printUser(users, CSTRA("georg@steffers.org")); - delete(user); delete(users); memCleanup();