#include #include #include #include "sdbm.h" bool check; int main(){ //Creates three databases puts("Creating 3 databases"); check = (sdbm_create("DATA1")&&sdbm_create("DATA2")&&sdbm_create("DATA3")); if (check) {puts("Three databases created!");} else {puts("Failed to create three databases!");} puts("Insert, remove, put, sync, get"); //test insert,remove,put,sync,get sdbm_open("DATA1"); sdbm_insert("KEY1", "VAL1"); sdbm_put("KEY1", "VAL1"); sdbm_get("DATA1", "KEY1"); sdbm_sync(); sdbm_close(); puts("Creating database with illegal arguments"); //Creates with illegal arguments for filenames check = sdbm_create("/"); if (check) {puts("Accepted Illegal argument.");} else {puts("Rejected Illegal argument.");} puts("Creating database with file name NULL"); //Tests on a file named null check = sdbm_create("NULL"); if (check) {puts("Accepted NULL. Will now try to open NULL"); check = sdbm_open("NULL"); if (check) {puts("Opened NULL. Will now try to insert in NULL"); check = sdbm_insert("KEY1", "VAL1"); if (check) {puts("Insert worked");} else {puts("Insert failed");} } else {puts("Could not open NULL.");} } else {puts("Rejected NULL Filename.");} puts("Opening a database, then creating different one"); //Creating while open sdbm_open("DATA1"); check = sdbm_create("DATA4"); if (check) {puts("Created while open.");} else {puts("Could not create while open.");} puts("Opening while open"); check = sdbm_open("DATA2"); //Opening while one is open if (check) {puts("Opened while open.");} else {puts("Could not open while open.");} sdbm_close("DATA1"); sdbm_close("DATA2"); puts("Opening a database twice in a row"); //Opening DATA3 twice in a row sdbm_open("DATA3"); check = sdbm_open("DATA3"); if (check) {puts("Opened twice");} else {puts("Failed to open twice");} puts("Opening after closed"); // sdbm_close("DATA3"); check = sdbm_open("DATA3"); if (check) {puts("Opened after closed.");} else {puts("Opened after closed.");} sdbm_close("DATA3"); puts("Attempting to open nonexistent database."); check = sdbm_open("garbage"); if (check) {puts("Opened nonexistent database.");} else {puts("Could not open a nonexistent database.");} /* puts("Inserting 50 keys"); char *key = "key"; for (int i = 0; i < 50; i++) { char *k = malloc (12); k = strcat(key, i+1); //fix this sdbm_insert(k); } puts("Finished insertion, checking get, remove, put"); sdbm_get("key1"); sdbm_remove("key2"); sdbm_put("key1", "val1"); sdbm_get("key1"); */ return EXIT_SUCCESS; }