]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dynamic modules regression tests
authorKees Monshouwer <mind04@monshouwer.org>
Mon, 29 Sep 2014 20:22:01 +0000 (22:22 +0200)
committermind04 <mind04@monshouwer.org>
Tue, 30 Sep 2014 06:50:48 +0000 (08:50 +0200)
42 files changed:
.travis.yml
modules/remotebackend/test-remotebackend-http.cc
modules/remotebackend/test-remotebackend-json.cc
modules/remotebackend/test-remotebackend-pipe.cc
modules/remotebackend/test-remotebackend-post.cc
modules/remotebackend/test-remotebackend-unix.cc
modules/remotebackend/test-remotebackend-zeromq.cc
pdns/ueberbackend.cc
regression-tests.api/runtests.py
regression-tests.nobackend/edns-packet-cache/command
regression-tests.recursor/config.sh
regression-tests/backends/bind-master
regression-tests/backends/bind-slave
regression-tests/backends/geoip-master
regression-tests/backends/gmysql-master
regression-tests/backends/gmysql-slave
regression-tests/backends/goracle-master
regression-tests/backends/goracle-slave
regression-tests/backends/gpgsql-master
regression-tests/backends/gpgsql-slave
regression-tests/backends/gsqlite3-master
regression-tests/backends/gsqlite3-slave
regression-tests/backends/lmdb-master
regression-tests/backends/mydns-master
regression-tests/backends/opendbx-master
regression-tests/backends/oracle-master
regression-tests/backends/oracle-slave
regression-tests/backends/remote-master
regression-tests/backends/tinydns-master
regression-tests/modules/libbindbackend.so [new symlink]
regression-tests/modules/libgeoipbackend.so [new symlink]
regression-tests/modules/libgmysqlbackend.so [new symlink]
regression-tests/modules/libgoraclebackend.so [new symlink]
regression-tests/modules/libgpgsqlbackend.so [new symlink]
regression-tests/modules/libgsqlite3backend.so [new symlink]
regression-tests/modules/libldapbackend.so [new symlink]
regression-tests/modules/liblmdbbackend.so [new symlink]
regression-tests/modules/libmydnsbackend.so [new symlink]
regression-tests/modules/libopendbxbackend.so [new symlink]
regression-tests/modules/liboraclebackend.so [new symlink]
regression-tests/modules/libremotebackend.so [new symlink]
regression-tests/modules/libtinydnsbackend.so [new symlink]

index 79f2bf82977aa6a391b5bebda53285143139fd97..dfd83156e8559816a8933f9fab6609887f2733ab 100644 (file)
@@ -32,7 +32,7 @@ before_script:
  - p11-kit -l # ensure it's ok
 script:
  - ./bootstrap
- - ./configure --with-modules='bind geoip gmysql gpgsql gsqlite3 mydns tinydns remote random opendbx ldap lmdb' --enable-unit-tests --enable-tools --enable-remotebackend-zeromq --enable-experimental-pkcs11
+ - ./configure --with-dynmodules='bind geoip gmysql gpgsql gsqlite3 mydns tinydns remote random opendbx ldap lmdb' --with-modules='' --enable-unit-tests --enable-tools --enable-remotebackend-zeromq --enable-experimental-pkcs11
  - make -k dist
  - make -k -j 4
  - make -k install DESTDIR=/tmp/pdns-install-dir
index ced7179d53e1bf7335f876f4203db7d3b3ca54a7..134f79cfbca27cf2e3b3d3a1b80eff1299fd5258 100644 (file)
@@ -43,7 +43,7 @@ struct RemotebackendSetup {
        be = 0; 
        try {
                // setup minimum arguments
-               ::arg().set("module-dir")="";
+               ::arg().set("module-dir")="./.libs";
                 new RemoteLoader();
                BackendMakers().launch("remote");
                 // then get us a instance of it 
index 4aa867089b998c68b9b452f0d337a572ffa2bc52..dea9c50a100589d676c4c8f337c45f8720fb041d 100644 (file)
@@ -43,7 +43,7 @@ struct RemotebackendSetup {
        be = 0; 
        try {
                // setup minimum arguments
-               ::arg().set("module-dir")="";
+               ::arg().set("module-dir")="./.libs";
                 new RemoteLoader();
                BackendMakers().launch("remote");
                 // then get us a instance of it 
index b238de860945a8507a7faf118846734732c01d66..331c34e03aa57a0ecc38f89cb38c434d696dfd6e 100644 (file)
@@ -43,7 +43,7 @@ struct RemotebackendSetup {
        be = 0; 
        try {
                // setup minimum arguments
-               ::arg().set("module-dir")="";
+               ::arg().set("module-dir")="./.libs";
                 new RemoteLoader();
                BackendMakers().launch("remote");
                 // then get us a instance of it 
index 2e69e2c45cec37d0e1c617f955b3c8f7f9cffcc0..9ad294346fb3cb54702a9bf8c548923fa2cd9980 100644 (file)
@@ -43,7 +43,7 @@ struct RemotebackendSetup {
        be = 0; 
        try {
                // setup minimum arguments
-               ::arg().set("module-dir")="";
+               ::arg().set("module-dir")="./.libs";
                 new RemoteLoader();
                BackendMakers().launch("remote");
                 // then get us a instance of it 
index 6825b32f721c6b5081c243a8f2678d6911cce1a9..7ee948025fad4d54eba72a20434807d6074a3e68 100644 (file)
@@ -43,7 +43,7 @@ struct RemotebackendSetup {
        be = 0; 
        try {
                // setup minimum arguments
-               ::arg().set("module-dir")="";
+               ::arg().set("module-dir")="./.libs";
                 new RemoteLoader();
                BackendMakers().launch("remote");
                 // then get us a instance of it 
index a0b17648824066306d6bf701489872bc41e6215a..266ea19160f3a3c7cc508b0d2fa3d75ab1fac715 100644 (file)
@@ -45,7 +45,7 @@ struct RemotebackendSetup {
        be = 0; 
        try {
                // setup minimum arguments
-               ::arg().set("module-dir")="";
+               ::arg().set("module-dir")="./.libs";
                 new RemoteLoader();
                BackendMakers().launch("remote");
                 // then get us a instance of it 
index df812ae0b355160bc906e1f979a5d8332030a265..2576ab5d6001bd261b464a8a57aabf0c9d48aeba 100644 (file)
@@ -70,15 +70,15 @@ int UeberBackend::s_s=-1; // ?
 //! Loads a module and reports it to all UeberBackend threads
 bool UeberBackend::loadmodule(const string &name)
 {
+  L<<Logger::Warning <<"Loading '"<<name<<"'" << endl;
+
   void *dlib=dlopen(name.c_str(), RTLD_NOW);
-  
+
   if(dlib == NULL) {
-    L<<Logger::Error<<"Unable to load module '"<<name<<"': "<<dlerror() << endl;
-    if(name.find("gsqlite3")!=string::npos)
-      L<<Logger::Warning <<"Trying to load gsqlite3backend? Make sure pdns_server was compiled with sqlite3!" <<endl;
+    L<<Logger::Error <<"Unable to load module '"<<name<<"': "<<dlerror() << endl;
     return false;
   }
-  
+
   return true;
 }
 
index 18c19b7476fe8cb5b78cc3296cbc99cd523a89cc..8f5f82f775deecb9a68e5aaf626df14d454202e4 100755 (executable)
@@ -78,7 +78,7 @@ if daemon == 'authoritative':
         tf.seek(0, os.SEEK_SET)  # rewind
         subprocess.check_call(["sqlite3", SQLITE_DB], stdin=tf)
 
-    pdnscmd = ("../pdns/pdns_server --daemon=no --local-port=5300 --socket-dir=./ --no-shuffle --launch=gsqlite3 --gsqlite3-dnssec --send-root-referral --experimental-dnsupdate=yes --cache-ttl=0 --no-config --gsqlite3-dnssec=on --gsqlite3-database="+SQLITE_DB+" --experimental-json-interface=yes --webserver=yes --webserver-port="+WEBPORT+" --webserver-address=127.0.0.1 --webserver-password="+WEBPASSWORD).split()
+    pdnscmd = ("../pdns/pdns_server --daemon=no --local-port=5300 --socket-dir=./ --module-dir=../regression-tests/modules --no-shuffle --launch=gsqlite3 --gsqlite3-dnssec --send-root-referral --experimental-dnsupdate=yes --cache-ttl=0 --no-config --gsqlite3-dnssec=on --gsqlite3-database="+SQLITE_DB+" --experimental-json-interface=yes --webserver=yes --webserver-port="+WEBPORT+" --webserver-address=127.0.0.1 --webserver-password="+WEBPASSWORD).split()
 
 else:
     conf_dir = 'rec-conf.d'
index ff5713e110c8d1cb8573c0fd8eea6c5e97bba651..ef4648d2ecf105d0392dfd4e3bcd6146c8fd9fca 100755 (executable)
@@ -26,7 +26,7 @@ rm -f pdns*.pid
 
 ../pdns/pdns_server --daemon=no --local-port=$port --socket-dir=./          \
        --no-shuffle --launch=bind --bind-config=edns-packet-cache/named.conf   \
-       --send-root-referral --cache-ttl=60 --no-config &
+       --send-root-referral --cache-ttl=60 --no-config --module-dir=../regression-tests/modules &
 bindwait
        
 # prime cache without EDNS
index cfdcae436f1160899b2d336244922a4acae3655b..65b8d4a4f909bf90f3ddc4347e6452f4850a5022 100755 (executable)
@@ -331,6 +331,7 @@ EOF
 for dir in $PREFIX.*
 do
     cat > $dir/pdns.conf <<EOF
+module-dir=../../../regression-tests/modules
 launch=bind
 daemon=no
 local-address=$dir
index 568b25ad0da45c4d2ccc221b57425cca0e6f425c..85b4851361538c1e28889dcdbb1d1e18e92198ae 100644 (file)
@@ -1,6 +1,7 @@
 case $context in
        bind)
                cat > pdns-bind.conf << __EOF__
+module-dir=./modules
 launch=bind
 bind-config=./named.conf
 bind-ignore-broken-records=yes
@@ -18,6 +19,7 @@ __EOF__
        bind-dnssec | bind-dnssec-nsec3 | bind-hybrid-nsec3 | bind-dnssec-nsec3-optout | bind-dnssec-nsec3-narrow)
                rm -f dnssec.sqlite3
                cat > pdns-bind.conf << __EOF__
+module-dir=./modules
 launch=bind
 bind-config=./named.conf
 bind-ignore-broken-records=yes
index b0c2167ccc996397cd15f8ecbb8396e009cff2be..eb9cf7c98bc2f254d4309ad201f9942f73e4a284 100644 (file)
@@ -30,6 +30,7 @@
                --no-shuffle --launch=bind --bind-config=./named-slave.conf --slave \
                --send-root-referral --retrieval-threads=1  --config-name=bind-slave \
                --experimental-dnsupdate=yes \
-               --cache-ttl=$cachettl --no-config --experimental-dname-processing --bind-dnssec-db=./dnssec-slave.sqlite3 &
+               --cache-ttl=$cachettl --no-config --experimental-dname-processing --bind-dnssec-db=./dnssec-slave.sqlite3 \
+               --module-dir=./modules &
        echo 'waiting for zones to be loaded'
        bindwait bind-slave
index 703a5209580dfb29329b14aaee79b97e7f8364b7..fbaee6effb202f464dab6eebda5b710e6ecb95f7 100644 (file)
@@ -53,6 +53,7 @@ EOF
 
                # generate pdns.conf for pdnssec
                cat > pdns-geoip.conf <<EOF
+module-dir=./modules
 launch=geoip
 geoip-zones-file=$testsdir/geo.yaml
 EOF
@@ -68,7 +69,7 @@ EOF
                        --no-shuffle --launch=geoip \
                        --cache-ttl=$cachettl --experimental-dname-processing --no-config \
                        --send-root-referral --distributor-threads=1 \
-                        --geoip-zones-file=$testsdir/geo.yaml \
+                        --geoip-zones-file=$testsdir/geo.yaml --module-dir=./modules \
                        $geoipkeydir &
                ;;
 
index 1e1a0b18ab8df338f712a417d054b52d46c90a96..d611960cd04343b4fc4748aef76c9bf1e0075de9 100644 (file)
@@ -17,6 +17,7 @@ case $context in
                        "$GMYSQLDB"
 
                cat > pdns-gmysql.conf << __EOF__
+module-dir=./modules
 launch=gmysql
 gmysql-dbname=$GMYSQLDB
 gmysql-user=$GMYSQLUSER
index e318e3cdda64e22af4072a4716c3b6812a107851..651f5dc2216aa5a5eece9d1f3d4f86c4d1d63df4 100644 (file)
@@ -12,6 +12,7 @@
                "$GMYSQL2DB" < ../modules/gmysqlbackend/schema.mysql.sql
 
        cat > pdns-gmysql2.conf << __EOF__
+module-dir=./modules
 launch=gmysql
 gmysql-dbname=$GMYSQL2DB
 gmysql-user=$GMYSQL2USER
index bec53470c824ef61b8f9f92303127b1a3aa530f7..a672986874767a3745ce583195de641ea1386cb8 100644 (file)
@@ -10,6 +10,7 @@ case $context in
                tosql goracle | sqlplus -S $GORACLEUSER/$GORACLEPASSWD@xe >> goracle.log
 
                cat > pdns-goracle.conf << __EOF__
+module-dir=./modules
 launch=goracle
 goracle-home=$ORACLE_HOME
 goracle-sid=$ORACLE_SID
index fbe4068381048301dfa1fd2eecd7db74d4bb8a96..cd0d2315c0da650b9b829a116271d9d27dadfce9 100644 (file)
@@ -6,6 +6,7 @@
        echo "START ../modules/goraclebackend/schema.goracle.sql;" | sqlplus -S $GORACLE2USER/$GORACLE2PASSWD@xe >> goracle2.log
 
        cat > pdns-goracle2.conf << __EOF__
+module-dir=./modules
 launch=goracle
 goracle-home=$ORACLE_HOME
 goracle-sid=$ORACLE_SID
index 63d3b81bb24802d4eaf4fab90acc4d020c0abcc2..edb188db25bcd38c9132428a48e5d098ee9e20d2 100644 (file)
@@ -12,6 +12,7 @@ case $context in
                tosql gpgsql | psql --user="$GPGSQLUSER" "$GPGSQLDB" 2>&1 | uniq -c
 
                cat > pdns-gpgsql.conf << __EOF__
+module-dir=./modules
 launch=gpgsql
 gpgsql-dbname=$GPGSQLDB
 gpgsql-user=$GPGSQLUSER
index 795cb8ad7d8e67c92a067a7aae98fdb966dd6adb..9a6a8bf2c098ffd11bd2f5e34db54fb2866a9ef2 100644 (file)
@@ -6,7 +6,8 @@
        createdb --user="$GPGSQL2USER" "$GPGSQL2DB" || echo ignoring mysqladmin drop failure
        psql --user="$GPGSQL2USER" "$GPGSQL2DB" < ../modules/gpgsqlbackend/schema.pgsql.sql
 
-  cat > pdns-gpgsql2.conf << __EOF__
+       cat > pdns-gpgsql2.conf << __EOF__
+module-dir=./modules
 launch=gpgsql
 gpgsql-dbname=$GPGSQL2DB
 gpgsql-user=$GPGSQL2USER
index 0f02cc8e4c3e178f3e063ec83151c6bda76194d2..c7b3ec0cbb092e7d83eb6c759bd15d607c2e36eb 100644 (file)
@@ -8,6 +8,7 @@ case $context in
                echo ANALYZE\; | sqlite3 pdns.sqlite3
 
                cat > pdns-gsqlite3.conf << __EOF__
+module-dir=./modules
 launch=gsqlite3
 gsqlite3-database=pdns.sqlite3
 __EOF__
index d0e2c63ff852455f8329fe43f50c4fae1bb6fd13..23ce476454d2f73346158bdc57f9b34d22e02656 100644 (file)
@@ -3,6 +3,7 @@
        sqlite3 pdns.sqlite32 < ../modules/gsqlite3backend/schema.sqlite3.sql
 
        cat > pdns-gsqlite32.conf << __EOF__
+module-dir=./modules
 launch=gsqlite3
 gsqlite3-database=pdns.sqlite32
 gsqlite3-pragma-synchronous=0
index 53a9e45e17ec3d4af1ce6bb9a54e943c4cac976f..faff62b6f718260d50712bd72dc3715954a69dc9 100644 (file)
@@ -77,7 +77,7 @@ case $context in
                        --no-shuffle --launch=lmdb \
                        --send-root-referral \
                        --cache-ttl=$cachettl --experimental-dname-processing --no-config \
-                       --lmdb-datapath=./ --lmdb-experimental-dnssec &
+                       --lmdb-datapath=./ --lmdb-experimental-dnssec --module-dir=./modules &
 
                skipreasons="noent nodyndns nometa lmdb"
 
index 711e1b3b0ac2a9651ad2d1f6211b31f9afb55be6..51d1b3f99ba2bc4d75e519d87d222218bd604cbd 100644 (file)
@@ -15,21 +15,18 @@ case $context in
                        "$MYDNSDB"
 
                cat > pdns-mydns.conf << __EOF__
+module-dir=./modules
 launch=mydns
 mydns-dbname=$MYDNSDB
 mydns-user=$MYDNSUSER
 mydns-host=$MYDNSHOST
 mydns-password=$MYDNSPASSWD
 __EOF__
-               $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./  \
-                       --no-shuffle --launch=mydns \
-                       --master --send-root-referral \
-                       --cache-ttl=0 --experimental-dname-processing --no-config \
-                       --mydns-rr-active=no --mydns-soa-active=no --mydns-use-minimal-ttl=no \
-                       --mydns-dbname="$MYDNSDB" \
-                       --mydns-user="$MYDNSUSER" \
-                       --mydns-host="$MYDNSHOST" \
-                       --mydns-password="$MYDNSPASSWD" &
+               $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./ \
+                       --config-dir=. --config-name=mydns \
+                       --no-shuffle --master --send-root-referral \
+                       --cache-ttl=0 --experimental-dname-processing \
+                       --mydns-rr-active=no --mydns-soa-active=no --mydns-use-minimal-ttl=no &
                skipreasons="nodnssec noent nodyndns nometa noaxfr"
                ;;
 
index 79046ab088d23e587e96e55b15d12251fef3d781..4582b61b0f1f03e2a2ffb20484191345e4c28d29 100644 (file)
@@ -12,7 +12,7 @@ case $context in
                        --send-root-referral \
                        --cache-ttl=$cachettl --experimental-dname-processing --no-config \
                        --opendbx-backend=sqlite3 --opendbx-host-read=./ --opendbx-host-write=./ \
-                       --opendbx-database=pdns-opendbx.sqlite3 &
+                       --opendbx-database=pdns-opendbx.sqlite3 --module-dir=./modules &
                skipreasons="nodnssec noent nodyndns nometa"
                ;;
 
index 5462fe3d769bf0783523a49d38473f28399712a6..121bdd4ade465ede1ead362b48fa3a105bba6d47 100644 (file)
@@ -9,6 +9,7 @@ case $context in
                ../pdns/zone2sql --oracle | grep " 'SOA', " | sqlplus -S $ORACLEUSER/$ORACLEPASSWD@xe >> oracle.log
 
                cat > pdns-oracle.conf << __EOF__
+module-dir=./modules
 launch=oracle
 oracle-home=$ORACLE_HOME
 oracle-sid=$ORACLE_SID
index 164447e66d5ac4e1809c66dea4358b0906cd147b..6bf9674d1f58606a656cd6e8e3b18db637774bc9 100644 (file)
@@ -6,6 +6,7 @@
        echo "START ../modules/oraclebackend/schema.oracle.sql;" | sqlplus -S $ORACLE2USER/$ORACLE2PASSWD@xe >> oracle2.log
 
        cat > pdns-oracle2.conf << __EOF__
+module-dir=./modules
 launch=oracle
 oracle-home=$ORACLE_HOME
 oracle-sid=$ORACLE_SID
index 628c93384a1a7bb92319756da471cbf58874e5be..0dd7360a0eccdac69df4f33cd981404e6d69fff3 100644 (file)
@@ -80,6 +80,7 @@ case $context in
 
                # generate pdns.conf for pdnssec
                cat > pdns-remote.conf <<EOF
+module-dir=./modules
 launch=remote
 remote-connection-string=$connstr,timeout=10000
 EOF
@@ -109,7 +110,7 @@ EOF
                        --cache-ttl=$cachettl --experimental-dname-processing --no-config \
                        --send-root-referral --distributor-threads=1 \
                        --experimental-dnsupdate=yes \
-                       --remote-connection-string="$connstr" $remote_add_param &
+                       --remote-connection-string="$connstr" $remote_add_param --module-dir=./modules &
                ;;
 
        *)
index 3d091655cb1d1caf76ff4fe2ccb598739fae5704..2cb8b79c2b2d47830e1f9b891daeb0f083ab0170 100644 (file)
@@ -5,7 +5,7 @@ case $context in
                 --cache-ttl=$cachettl --experimental-dname-processing --no-config \
                        --send-root-referral \
                        --experimental-dnsupdate=yes \
-                       --tinydns-dbfile=../modules/tinydnsbackend/data.cdb 
+                       --tinydns-dbfile=../modules/tinydnsbackend/data.cdb --module-dir=./modules &
                skipreasons="nodnssec noent nodyndns nometa noaxfr"
                ;;
 
diff --git a/regression-tests/modules/libbindbackend.so b/regression-tests/modules/libbindbackend.so
new file mode 120000 (symlink)
index 0000000..666ea52
--- /dev/null
@@ -0,0 +1 @@
+../../modules/bindbackend/.libs/libbindbackend.so
\ No newline at end of file
diff --git a/regression-tests/modules/libgeoipbackend.so b/regression-tests/modules/libgeoipbackend.so
new file mode 120000 (symlink)
index 0000000..a73d79e
--- /dev/null
@@ -0,0 +1 @@
+../../modules/geoipbackend/.libs/libgeoipbackend.so
\ No newline at end of file
diff --git a/regression-tests/modules/libgmysqlbackend.so b/regression-tests/modules/libgmysqlbackend.so
new file mode 120000 (symlink)
index 0000000..5afd92f
--- /dev/null
@@ -0,0 +1 @@
+../../modules/gmysqlbackend/.libs/libgmysqlbackend.so
\ No newline at end of file
diff --git a/regression-tests/modules/libgoraclebackend.so b/regression-tests/modules/libgoraclebackend.so
new file mode 120000 (symlink)
index 0000000..30b9d96
--- /dev/null
@@ -0,0 +1 @@
+../../modules/goraclebackend/.libs/libgoraclebackend.so
\ No newline at end of file
diff --git a/regression-tests/modules/libgpgsqlbackend.so b/regression-tests/modules/libgpgsqlbackend.so
new file mode 120000 (symlink)
index 0000000..66fac38
--- /dev/null
@@ -0,0 +1 @@
+../../modules/gpgsqlbackend/.libs/libgpgsqlbackend.so
\ No newline at end of file
diff --git a/regression-tests/modules/libgsqlite3backend.so b/regression-tests/modules/libgsqlite3backend.so
new file mode 120000 (symlink)
index 0000000..04afa66
--- /dev/null
@@ -0,0 +1 @@
+../../modules/gsqlite3backend/.libs/libgsqlite3backend.so
\ No newline at end of file
diff --git a/regression-tests/modules/libldapbackend.so b/regression-tests/modules/libldapbackend.so
new file mode 120000 (symlink)
index 0000000..5b9693e
--- /dev/null
@@ -0,0 +1 @@
+../../modules/ldapbackend/.libs/libldapbackend.so
\ No newline at end of file
diff --git a/regression-tests/modules/liblmdbbackend.so b/regression-tests/modules/liblmdbbackend.so
new file mode 120000 (symlink)
index 0000000..52c0801
--- /dev/null
@@ -0,0 +1 @@
+../../modules/lmdbbackend/.libs/liblmdbbackend.so
\ No newline at end of file
diff --git a/regression-tests/modules/libmydnsbackend.so b/regression-tests/modules/libmydnsbackend.so
new file mode 120000 (symlink)
index 0000000..16d824b
--- /dev/null
@@ -0,0 +1 @@
+../../modules/mydnsbackend/.libs/libmydnsbackend.so
\ No newline at end of file
diff --git a/regression-tests/modules/libopendbxbackend.so b/regression-tests/modules/libopendbxbackend.so
new file mode 120000 (symlink)
index 0000000..aa12c76
--- /dev/null
@@ -0,0 +1 @@
+../../modules/opendbxbackend/.libs/libopendbxbackend.so
\ No newline at end of file
diff --git a/regression-tests/modules/liboraclebackend.so b/regression-tests/modules/liboraclebackend.so
new file mode 120000 (symlink)
index 0000000..e7aefdc
--- /dev/null
@@ -0,0 +1 @@
+../../modules/oraclebackend/.libs/liboraclebackend.so
\ No newline at end of file
diff --git a/regression-tests/modules/libremotebackend.so b/regression-tests/modules/libremotebackend.so
new file mode 120000 (symlink)
index 0000000..a4d06d1
--- /dev/null
@@ -0,0 +1 @@
+../../modules/remotebackend/.libs/libremotebackend.so
\ No newline at end of file
diff --git a/regression-tests/modules/libtinydnsbackend.so b/regression-tests/modules/libtinydnsbackend.so
new file mode 120000 (symlink)
index 0000000..87701bb
--- /dev/null
@@ -0,0 +1 @@
+../../modules/tinydnsbackend/.libs/libtinydnsbackend.so
\ No newline at end of file