All pastes #387083 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-03-09 01:46 UTC
rendered paste body
#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>

#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;
  
}