[nagiosplug] Add skeleton tests

"Ton Voon" <[email protected]>
Newsgroups gmane.network.nagios.plugins.cvs
Message-ID <[email protected]>
 Module: nagiosplug
 Branch: ton/state
 Commit: 301599a4eca67e214ef79bd609843a9e1e710b3a
 Author: Ton Voon <[email protected]>
   Date: Thu Jun 17 10:57:59 2010 +0100
    URL: http://nagiosplug.git.sf.net/git/gitweb.cgi?p=nagiosplug/nagiosplug;a=commit;h=301599a

Add skeleton tests

---

 lib/tests/test_utils.c |   28 ++++++++++++++++++++++++++++
 lib/utils_base.c       |   11 +++++++++--
 lib/utils_base.h       |    4 ++--
 3 files changed, 39 insertions(+), 4 deletions(-)

diff --git a/lib/tests/test_utils.c b/lib/tests/test_utils.c
index 3a45944..057c484 100644
--- a/lib/tests/test_utils.c
+++ b/lib/tests/test_utils.c
@@ -28,6 +28,10 @@ main (int argc, char **argv)
 	double	temp;
 	thresholds *thresholds = NULL;
 	int	rc;
+	char	*temp_string;
+	state_key *temp_state_key = NULL;
+	state_data *temp_state_data;
+	time_t	current_time;
 
 	plan_tests(81+23);
 
@@ -251,5 +255,29 @@ main (int argc, char **argv)
 	test=np_extract_ntpvar("", "foo");
 	ok(!test, "Empty string return NULL");
 
+
+	temp_string = np_state_generate_key(argv);
+	ok(!strcmp(temp_string, "Ahash"), "Got hash" );
+	
+	ok(temp_state_key==NULL, "temp_state_key initially empty");
+	temp_state_key = np_state_init("check_test", temp_string, 54);
+	ok( !strcmp(temp_state_key->plugin_name, "check_test"), "Got plugin name" );
+	ok( !strcmp(temp_state_key->name, temp_string), "Got key name" );
+	ok( !strcmp(temp_state_key->_filename, "Tobedone"), "Got internal filename" );
+	ok( temp_state_key->data_version==54, "Version set" );
+
+	temp_state_data = np_state_read(temp_state_key);
+	ok( temp_state_data==NULL, "Got state data" );
+
+	time(&current_time);
+	np_state_write_string(temp_state_key, NULL, "New data");
+
+	temp_state_data = np_state_read(temp_state_key);
+	/* Check time is set to current_time */
+
+
+	np_state_cleanup(temp_state_key);
+	ok(temp_state_key==NULL, "temp_state_key cleared");
+
 	return exit_status();
 }
diff --git a/lib/utils_base.c b/lib/utils_base.c
index c9f0912..fb44240 100644
--- a/lib/utils_base.c
+++ b/lib/utils_base.c
@@ -28,6 +28,8 @@
 #include <stdarg.h>
 #include "utils_base.h"
 
+#define np_free(ptr) { if(ptr) { free(ptr); ptr = NULL; } }
+
 void
 die (int result, const char *fmt, ...)
 {
@@ -315,7 +317,7 @@ char *np_extract_value(const char *varlist, const char *name, char sep) {
  * hopefully a unique key per service/plugin invocation. Use the extra-opts
  * parse of argv, so that uniqueness in parameters are reflected there.
  */
-char *np_state_generate_key(const char **argv) {
+char *np_state_generate_key(char **argv) {
 	return "Ahash";
 }
 
@@ -352,6 +354,9 @@ state_key *np_state_init(char *plugin_name, char *keyname, int expected_data_ver
 state_data *np_state_read(state_key *my_state_key) {
 	state_data *this_state_data=NULL;
 	my_state_key->state_data = this_state_data;
+
+	/* Open file */
+
 	return this_state_data;
 }
 
@@ -362,12 +367,14 @@ state_data *np_state_read(state_key *my_state_key) {
  * two things writing to same key at same time. 
  * Will die with UNKNOWN if errors
  */
-void np_state_write_string(state_key *my_state_key, time_t data_time, char *data_string) {
+void np_state_write_string(state_key *my_state_key, time_t *data_time, char *data_string) {
 }
 
 /*
  * Cleanup
  */
 void np_state_cleanup(state_key *my_state_key) {
+	free(my_state_key);
+	my_state_key=NULL;
 }
 
diff --git a/lib/utils_base.h b/lib/utils_base.h
index 6e1af94..bec6c66 100644
--- a/lib/utils_base.h
+++ b/lib/utils_base.h
@@ -85,10 +85,10 @@ char *np_extract_value(const char*, const char*, char);
 #define np_extract_ntpvar(l, n) np_extract_value(l, n, ',')
 
 
-char *np_state_generate_key(const char **);
+char *np_state_generate_key(char **);
 state_key *np_state_init(char *, char *, int);
 state_data *np_state_read(state_key *);
-void np_state_write_string(state_key *, time_t, char *);
+void np_state_write_string(state_key *, time_t *, char *);
 void np_state_cleanup(state_key *);
 
 #endif /* _UTILS_BASE_ */


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.