[Pcsclite-cvs-commit] r6979 - trunk/PCSC/UnitaryTests

ludovic.rousseau at free.fr ludovic.rousseau at free.fr
Tue Sep 9 09:21:27 UTC 2014


Author: rousseau
Date: 2014-09-09 09:21:27 +0000 (Tue, 09 Sep 2014)
New Revision: 6979

Added:
   trunk/PCSC/UnitaryTests/exec.c
Modified:
   trunk/PCSC/UnitaryTests/Makefile
Log:
Unitary Test for change in revision 6978


Modified: trunk/PCSC/UnitaryTests/Makefile
===================================================================
--- trunk/PCSC/UnitaryTests/Makefile	2014-09-09 09:18:06 UTC (rev 6978)
+++ trunk/PCSC/UnitaryTests/Makefile	2014-09-09 09:21:27 UTC (rev 6979)
@@ -10,7 +10,8 @@
 LDLIBS := $(PCSC_LDLIBS)
 
 PROGRAMS := SCardBeginTransaction \
-	BufferOverflow
+	BufferOverflow \
+	exec
 
 all: $(PROGRAMS)
 

Added: trunk/PCSC/UnitaryTests/exec.c
===================================================================
--- trunk/PCSC/UnitaryTests/exec.c	                        (rev 0)
+++ trunk/PCSC/UnitaryTests/exec.c	2014-09-09 09:21:27 UTC (rev 6979)
@@ -0,0 +1,55 @@
+/*
+    Check PC/SC file descriptor is closed after an exec
+    Copyright (C) 2014   Ludovic Rousseau
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+/* Unitary Test for change in revision 6978 */
+
+#include <stdio.h>
+#include <unistd.h>
+
+#include <winscard.h>
+
+int main(void)
+{
+	SCARDCONTEXT hContext;
+	LONG rv;
+
+	printf("pid: %d\n", getpid());
+
+	rv = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL, NULL, &hContext);
+	if (rv != SCARD_S_SUCCESS)
+	{
+		printf("SCardEstablishContext failed: %s\n", pcsc_stringify_error(rv));
+		return -1;
+	}
+
+	/*
+	rv = SCardReleaseContext(hContext);
+	if (rv != SCARD_S_SUCCESS)
+		return -1;
+	*/
+
+	/* the libpcsclite/pcscd socket should automatically be closed by
+	 * the exec */
+	printf("You should not see any _socket_ file descriptor bellow:\n");
+
+	execl("/bin/sh", "sh", "-c", "ls -l /proc/self/fd", NULL);
+	perror("exec");
+
+	return 0;
+}




More information about the Pcsclite-cvs-commit mailing list