]> git.saurik.com Git - apt.git/commitdiff
Provide tests for thread-safety
authorJulian Andres Klode <jak@debian.org>
Fri, 23 Oct 2015 18:13:00 +0000 (20:13 +0200)
committerJulian Andres Klode <jak@debian.org>
Fri, 30 Oct 2015 14:36:11 +0000 (15:36 +0100)
These scripts currently produce HTML output that is directly
piped into an HTML file on alioth.

There are three categories. The first two check external
library calls to use the ones specified by POSIX to be
thread-safe. The main profile excludes functions that are
thread-safe on Linux or glibc in general, while the portable
output strictly follows posix.

The internal.html output lists internal function calls, such
as configuration setting.

This is supposed to be automated further at some point, so
we can automatically check for regressions.

test/thread-safety/not-thread-safe.sh [new file with mode: 0755]
test/thread-safety/thread-check-internal.txt [new file with mode: 0644]
test/thread-safety/thread-check.txt [new file with mode: 0644]

diff --git a/test/thread-safety/not-thread-safe.sh b/test/thread-safety/not-thread-safe.sh
new file mode 100755 (executable)
index 0000000..12ac3f3
--- /dev/null
@@ -0,0 +1,7 @@
+git grep -p --color -n -E "$(grep -v ^# thread-check.txt  | sed 's/(.*/\\\\ *\\\\(/' | xargs | tr ' ' '|')" \
+    apt-inst/ apt-pkg/  | ansi2html  | ssh alioth.debian.org 'cat > /home/groups/apt/htdocs/not-thread-safe/index.html'
+git grep -p --color -n -E "$(grep ^# thread-check.txt  | cut -f2 -d# | sed 's/(.*/\\\\ *\\\\(/' | xargs | tr ' ' '|')" \
+    apt-inst/ apt-pkg/  | ansi2html  | ssh alioth.debian.org 'cat > /home/groups/apt/htdocs/not-thread-safe/portable.html'
+
+git grep -p --color -n -E "$(grep -v ^# thread-check-internal.txt  | sed 's/(.*/\\\\ *\\\\(/' | xargs | tr ' ' '|')" \
+    apt-inst/ apt-pkg/  | ansi2html  | ssh alioth.debian.org 'cat > /home/groups/apt/htdocs/not-thread-safe/internal.html'
diff --git a/test/thread-safety/thread-check-internal.txt b/test/thread-safety/thread-check-internal.txt
new file mode 100644 (file)
index 0000000..c55985f
--- /dev/null
@@ -0,0 +1,3 @@
+CndSet()
+Set()
+Clear()
diff --git a/test/thread-safety/thread-check.txt b/test/thread-safety/thread-check.txt
new file mode 100644 (file)
index 0000000..ed00965
--- /dev/null
@@ -0,0 +1,91 @@
+asctime()
+basename()
+catgets()
+crypt()
+ctermid() if passed a non-NULL argument
+ctime()
+dbm_clearerr()
+dbm_close()
+dbm_delete()
+dbm_error()
+dbm_fetch()
+dbm_firstkey()
+dbm_nextkey()
+dbm_open()
+dbm_store()
+dirname()
+dlerror()
+drand48()
+ecvt() [POSIX.1-2001 only (function removed in POSIX.1-2008)]
+encrypt()
+endgrent()
+endpwent()
+endutxent()
+fcvt() [POSIX.1-2001 only (function removed in POSIX.1-2008)]
+ftw()
+gcvt() [POSIX.1-2001 only (function removed in POSIX.1-2008)]
+getc_unlocked()
+getchar_unlocked()
+getdate()
+#getenv()
+getgrent()
+getgrgid()
+getgrnam()
+gethostbyaddr() [POSIX.1-2001 only (function removed in POSIX.1-2008)]
+gethostbyname() [POSIX.1-2001 only (function removed in POSIX.1-2008)]
+gethostent()
+getlogin()
+getnetbyaddr()
+getnetbyname()
+getnetent()
+getopt()
+getprotobyname()
+getprotobynumber()
+getprotoent()
+getpwent()
+getpwnam()
+getpwuid()
+getservbyname()
+getservbyport()
+getservent()
+getutxent()
+getutxid()
+getutxline()
+gmtime()
+hcreate()
+hdestroy()
+hsearch()
+inet_ntoa()
+l64a()
+lgamma()
+lgammaf()
+lgammal()
+localeconv()
+localtime()
+lrand48()
+mrand48()
+nftw()
+#nl_langinfo()
+ptsname()
+putc_unlocked()
+putchar_unlocked()
+putenv()
+pututxline()
+rand()
+#readdir()
+setenv()
+setgrent()
+setkey()
+setpwent()
+setutxent()
+#strerror()
+strsignal() [Added in POSIX.1-2008]
+strtok()
+#system() [Added in POSIX.1-2008]
+tmpnam() if passed a non-NULL argument
+ttyname()
+unsetenv()
+wcrtomb() if its final argument is NULL
+wcsrtombs() if its final argument is NULL
+wcstombs()
+wctomb()