diff --git a/autotest.sh b/autotest.sh
index abe0b92586ca24191e9b4f99742189ba88888b1b..a343f6a25ab7bb887b2d1135614e9229316315e3 100755
--- a/autotest.sh
+++ b/autotest.sh
@@ -10,9 +10,15 @@
 DATABASENAME=oc_autotest$EXECUTOR_NUMBER
 DATABASEUSER=oc_autotest$EXECUTOR_NUMBER
 ADMINLOGIN=admin$EXECUTOR_NUMBER
-DATADIR=data-autotest
 BASEDIR=$PWD
 
+# use tmpfs for datadir - should speedup unit test execution
+if [ -d /dev/shm ]; then
+  DATADIR=/dev/shm/data-autotest$EXECUTOR_NUMBER
+else
+  DATADIR=$BASEDIR/data-autotest
+fi
+
 echo "Using database $DATABASENAME"
 
 # create autoconfig for sqlite, mysql and postgresql
@@ -24,7 +30,7 @@ cat > ./tests/autoconfig-sqlite.php <<DELIM
   'dbtableprefix' => 'oc_',
   'adminlogin' => '$ADMINLOGIN',
   'adminpass' => 'admin',
-  'directory' => '$BASEDIR/$DATADIR',
+  'directory' => '$DATADIR',
 );
 DELIM
 
@@ -36,7 +42,7 @@ cat > ./tests/autoconfig-mysql.php <<DELIM
   'dbtableprefix' => 'oc_',
   'adminlogin' => '$ADMINLOGIN',
   'adminpass' => 'admin',
-  'directory' => '$BASEDIR/$DATADIR',
+  'directory' => '$DATADIR',
   'dbuser' => '$DATABASEUSER',
   'dbname' => '$DATABASENAME',
   'dbhost' => 'localhost',
@@ -52,7 +58,7 @@ cat > ./tests/autoconfig-pgsql.php <<DELIM
   'dbtableprefix' => 'oc_',
   'adminlogin' => '$ADMINLOGIN',
   'adminpass' => 'admin',
-  'directory' => '$BASEDIR/$DATADIR',
+  'directory' => '$DATADIR',
   'dbuser' => '$DATABASEUSER',
   'dbname' => '$DATABASENAME',
   'dbhost' => 'localhost',
@@ -68,7 +74,7 @@ cat > ./tests/autoconfig-oci.php <<DELIM
   'dbtableprefix' => 'oc_',
   'adminlogin' => '$ADMINLOGIN',
   'adminpass' => 'admin',
-  'directory' => '$BASEDIR/$DATADIR',
+  'directory' => '$DATADIR',
   'dbuser' => '$DATABASENAME',
   'dbname' => 'XE',
   'dbhost' => 'localhost',