add an init test that shows how init();shutdown();init();shutdown(); fails
authorwarlord <warlord@cb58f699-b61c-0410-a6fe-9272a202ed29>
Fri, 23 Apr 2004 22:09:57 +0000 (22:09 +0000)
committerwarlord <warlord@cb58f699-b61c-0410-a6fe-9272a202ed29>
Fri, 23 Apr 2004 22:09:57 +0000 (22:09 +0000)
git-svn-id: https://svn.middleware.georgetown.edu/cpp-sp/trunk@1046 cb58f699-b61c-0410-a6fe-9272a202ed29

test/.cvsignore
test/Makefile.am
test/inittest.cpp [new file with mode: 0644]

index f87e2aa..5cee7bf 100644 (file)
@@ -5,3 +5,4 @@ Makefile.in
 shibtest
 posttest
 xmlsectest
+inittest
index 373c82a..55c9f61 100644 (file)
@@ -3,13 +3,19 @@
 AUTOMAKE_OPTIONS = foreign
 
 bin_PROGRAMS = shibtest posttest
+noinst_PROGRAMS = inittest
 
 shibtest_SOURCES = shibtest.cpp
 
 posttest_SOURCES = posttest.cpp
 
+inittest_SOURCES = inittest.cpp
+
 shibtest_LDADD = $(top_builddir)/shib/libshib.la \
        $(top_builddir)/shib-target/libshib-target.la
 
 posttest_LDADD = $(top_builddir)/shib/libshib.la \
        $(top_builddir)/shib-target/libshib-target.la
+
+inittest_LDADD = $(top_builddir)/shib/libshib.la \
+       $(top_builddir)/shib-target/libshib-target.la
diff --git a/test/inittest.cpp b/test/inittest.cpp
new file mode 100644 (file)
index 0000000..f971204
--- /dev/null
@@ -0,0 +1,97 @@
+/*
+ * The Shibboleth License, Version 1.
+ * Copyright (c) 2002
+ * University Corporation for Advanced Internet Development, Inc.
+ * All rights reserved
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * 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, if any, must include
+ * the following acknowledgment: "This product includes software developed by
+ * the University Corporation for Advanced Internet Development
+ * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement
+ * may appear in the software itself, if and wherever such third-party
+ * acknowledgments normally appear.
+ *
+ * Neither the name of Shibboleth nor the names of its contributors, nor
+ * Internet2, nor the University Corporation for Advanced Internet Development,
+ * Inc., nor UCAID may be used to endorse or promote products derived from this
+ * software without specific prior written permission. For written permission,
+ * please contact shibboleth@shibboleth.org
+ *
+ * Products derived from this software may not be called Shibboleth, Internet2,
+ * UCAID, or the University Corporation for Advanced Internet Development, nor
+ * may Shibboleth appear in their name, without prior written permission of the
+ * University Corporation for Advanced Internet Development.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+ * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK
+ * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE.
+ * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY
+ * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. 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 "../shib-target/shib-target.h"
+#include "../shib-target/shib-paths.h"
+
+using namespace std;
+using namespace saml;
+using namespace shibboleth;
+using namespace shibtarget;
+
+ShibTargetConfig* g_Config = NULL;
+
+void shutdown(void)
+{
+  g_Config->shutdown();
+  g_Config = NULL;
+}
+
+void init(void)
+{
+  try {
+    g_Config=&ShibTargetConfig::getConfig();
+    g_Config->setFeatures(
+                         ShibTargetConfig::Listener |
+                         ShibTargetConfig::Metadata |
+                         ShibTargetConfig::AAP |
+                         ShibTargetConfig::RequestMapper |
+                         ShibTargetConfig::SHIREExtensions
+                         );
+
+    if (!g_Config->init(SHIB_SCHEMAS,SHIB_CONFIG)) {
+      cerr << "init() failed to initialize SHIB Target" << endl;
+      exit(1);
+    }
+  }
+  catch (...) {
+    cerr << "init() failed to initialize SHIB Target" << endl;
+    exit (1);
+  }
+}
+
+int main(int argc, char* argv[])
+{
+  init();
+  shutdown();
+  init();
+  shutdown();
+  exit(0);
+}