summaryrefslogtreecommitdiff
path: root/test/thread-safety
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2015-10-23 20:13:00 +0200
committerJulian Andres Klode <jak@debian.org>2015-10-30 15:36:11 +0100
commit77242b1e219b79d39a2695e5f75f08d6eb92ae6f (patch)
tree6b33402522c07fcb9137abadc99406786d3c83dd /test/thread-safety
parent7d70f7993e2e6e465ac216bc21ec15ed7b7d9ff5 (diff)
Provide tests for thread-safety
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.
Diffstat (limited to 'test/thread-safety')
-rwxr-xr-xtest/thread-safety/not-thread-safe.sh7
-rw-r--r--test/thread-safety/thread-check-internal.txt3
-rw-r--r--test/thread-safety/thread-check.txt91
3 files changed, 101 insertions, 0 deletions
diff --git a/test/thread-safety/not-thread-safe.sh b/test/thread-safety/not-thread-safe.sh
new file mode 100755
index 000000000..12ac3f398
--- /dev/null
+++ b/test/thread-safety/not-thread-safe.sh
@@ -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
index 000000000..c55985fa0
--- /dev/null
+++ b/test/thread-safety/thread-check-internal.txt
@@ -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
index 000000000..ed00965bd
--- /dev/null
+++ b/test/thread-safety/thread-check.txt
@@ -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()