Simple hdb plugin test
Signed-off-by: Love Hörnquist Åstrand <lha@h5l.org>
This commit is contained in:
		 Jeffrey Clark
					Jeffrey Clark
				
			
				
					committed by
					
						 Love Hörnquist Åstrand
						Love Hörnquist Åstrand
					
				
			
			
				
	
			
			
			 Love Hörnquist Åstrand
						Love Hörnquist Åstrand
					
				
			
						parent
						
							c1c7da7f79
						
					
				
				
					commit
					cc1faff15f
				
			| @@ -72,7 +72,7 @@ if versionscript | ||||
| libhdb_la_LDFLAGS += $(LDFLAGS_VERSION_SCRIPT)$(srcdir)/version-script.map | ||||
| endif | ||||
|  | ||||
| noinst_PROGRAMS = test_dbinfo test_hdbkeys test_mkey | ||||
| noinst_PROGRAMS = test_dbinfo test_hdbkeys test_mkey test_hdbplugin | ||||
|  | ||||
| dist_libhdb_la_SOURCES =			\ | ||||
| 	common.c				\ | ||||
| @@ -117,6 +117,7 @@ ALL_OBJECTS  = $(libhdb_la_OBJECTS) | ||||
| ALL_OBJECTS += $(test_dbinfo_OBJECTS) | ||||
| ALL_OBJECTS += $(test_hdbkeys_OBJECTS) | ||||
| ALL_OBJECTS += $(test_mkey_OBJECTS) | ||||
| ALL_OBJECTS += $(test_hdbplugin_OBJECTS) | ||||
|  | ||||
| $(ALL_OBJECTS): $(HDB_PROTOS) | ||||
|  | ||||
| @@ -137,6 +138,7 @@ test_dbinfo_LIBS = libhdb.la | ||||
|  | ||||
| test_hdbkeys_LIBS = ../krb5/libkrb5.la libhdb.la | ||||
| test_mkey_LIBS = $(test_hdbkeys_LIBS) | ||||
| test_hdbplugin_LIBS = $(test_hdbkeys_LIBS) | ||||
|  | ||||
| # to help stupid solaris make | ||||
|  | ||||
|   | ||||
| @@ -149,7 +149,7 @@ clean:: | ||||
|  | ||||
| test:: test-binaries test-run | ||||
|  | ||||
| test-binaries: $(OBJ)\test_dbinfo.exe $(OBJ)\test_hdbkeys.exe | ||||
| test-binaries: $(OBJ)\test_dbinfo.exe $(OBJ)\test_hdbkeys.exe $(OBJ)\test_hdbplugin.exe | ||||
|  | ||||
| $(OBJ)\test_dbinfo.exe: $(OBJ)\test_dbinfo.obj $(LIBHDB) $(LIBHEIMDAL) $(LIBROKEN) $(LIBVERS) | ||||
| 	$(EXECONLINK) | ||||
| @@ -159,6 +159,10 @@ $(OBJ)\test_hdbkeys.exe: $(OBJ)\test_hdbkeys.obj $(LIBHDB) $(LIBHEIMDAL) $(LIBRO | ||||
| 	$(EXECONLINK) | ||||
| 	$(EXEPREP_NODIST) | ||||
|  | ||||
| $(OBJ)\test_hdbplugin.exe: $(OBJ)\test_hdbplugin.obj $(LIBHDB) $(LIBHEIMDAL) $(LIBROKEN) $(LIBVERS) | ||||
| 	$(EXECONLINK) | ||||
| 	$(EXEPREP_NODIST) | ||||
|  | ||||
| test-run: | ||||
| 	cd $(OBJ) | ||||
| 	test_dbinfo.exe | ||||
|   | ||||
							
								
								
									
										98
									
								
								lib/hdb/test_hdbplugin.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								lib/hdb/test_hdbplugin.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,98 @@ | ||||
| /* | ||||
|  * Copyright (c) 2013 Jeffrey Clark | ||||
|  * All rights reserved. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions | ||||
|  * are met: | ||||
|  * | ||||
|  * 1. Redistributions of source code must retain the above copyright | ||||
|  *    notice, this list of conditions and the following disclaimer. | ||||
|  * | ||||
|  * 2. Redistributions in binary form must reproduce the above copyright | ||||
|  *    notice, this list of conditions and the following disclaimer in the | ||||
|  *    documentation and/or other materials provided with the distribution. | ||||
|  * | ||||
|  * 3. Neither the name of the Institute nor the names of its contributors | ||||
|  *    may be used to endorse or promote products derived from this software | ||||
|  *    without specific prior written permission. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND | ||||
|  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||||
|  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE | ||||
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||||
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||||
|  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||||
|  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||||
|  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||||
|  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||||
|  * SUCH DAMAGE. | ||||
|  */ | ||||
|  | ||||
| #include "hdb_locl.h" | ||||
|  | ||||
| struct hdb_called { | ||||
|     int create; | ||||
|     int init; | ||||
|     int fini; | ||||
| }; | ||||
| struct hdb_called testresult; | ||||
|  | ||||
| static krb5_error_code KRB5_LIB_CALL | ||||
| hdb_test_create(krb5_context context, struct HDB **db, const char *arg) | ||||
| { | ||||
| 	testresult.create = 1; | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| static krb5_error_code | ||||
| hdb_test_init(krb5_context context, void **ctx) | ||||
| { | ||||
| 	*ctx = NULL; | ||||
| 	testresult.init = 1; | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| static void hdb_test_fini(void *ctx) | ||||
| { | ||||
| 	testresult.fini = 1; | ||||
| } | ||||
|  | ||||
| struct hdb_method hdb_test = | ||||
| { | ||||
| 	.version = HDB_INTERFACE_VERSION, | ||||
| 	.init = hdb_test_init, | ||||
| 	.fini = hdb_test_fini, | ||||
| 	.prefix = "test", | ||||
| 	.create = hdb_test_create | ||||
| }; | ||||
|  | ||||
| int | ||||
| main(int argc, char **argv) | ||||
| { | ||||
|     krb5_error_code ret; | ||||
|     krb5_context context; | ||||
|     HDB *db; | ||||
|  | ||||
|     setprogname(argv[0]); | ||||
|  | ||||
|     ret = krb5_init_context(&context); | ||||
|     if (ret) | ||||
| 	errx(1, "krb5_init_contex"); | ||||
|  | ||||
|     ret = krb5_plugin_register(context, | ||||
| 		    PLUGIN_TYPE_DATA, "hdb", | ||||
| 		    &hdb_test); | ||||
|     if(ret) { | ||||
| 	    krb5_err(context, 1, ret, "krb5_plugin_register"); | ||||
|     } | ||||
|  | ||||
|     ret = hdb_create(context, &db, "HDB:test&1234"); | ||||
|     if(ret) { | ||||
| 	    krb5_err(context, 1, ret, "hdb_create"); | ||||
|     } | ||||
|  | ||||
|     krb5_free_context(context); | ||||
|     return 0; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user