Selaa lähdekoodia

tvapop0001: avp_subst() and avp_subst_pv() checks

Depends on functionality added at kamailio/kamailio/#2158
Victor Seva 5 vuotta sitten
vanhempi
commit
94eb90438b

+ 8 - 0
units/tavpop0001/README.md

@@ -0,0 +1,8 @@
+# avpops - avp_subst() Tests #
+
+Summary: avpops - avp_subst() and avp_subst_pv() tests
+
+Following tests are done:
+
+  * run kamailio with kamailio-tavpop0001.cfg and test if avps are set
+  accordingly with the subst rules

+ 86 - 0
units/tavpop0001/kamailio-tavpop0001.cfg

@@ -0,0 +1,86 @@
+#!KAMAILIO
+
+children=1
+
+loadmodule "kex.so"
+loadmodule "jsonrpcs.so"
+loadmodule "tm.so"
+loadmodule "tmx.so"
+loadmodule "sl.so"
+loadmodule "rr.so"
+loadmodule "pv.so"
+loadmodule "textops.so"
+loadmodule "avpops.so"
+loadmodule "xlog.so"
+
+modparam("jsonrpcs", "pretty_format", 1)
+
+request_route {
+    if (!is_method("MESSAGE")) exit;
+
+    $(avp(src)[*]) = "testME";
+    avp_subst("$avp(src)", "/test/xxxx/g");
+    $var(res) = "xxxxME";
+    route(CHECK);
+
+    $(avp(src)[*]) = "testME";
+    $var(x) = "yyy";
+    avp_subst("$avp(src)", "/test/$var(x)/g");
+    $var(res) = "yyyME";
+    route(CHECK);
+
+    $(avp(src)[*]) = "testME";
+    $var(x) = "/test/yyy/g";
+    avp_subst_pv("$avp(src)", "$var(x)");
+    route(CHECK);
+
+    $(avp(src)[*]) = "testME";
+    avp_subst("$avp(src)", "/e/j/gi");
+    $var(res) = "tjstMj";
+    route(CHECK);
+
+    $(avp(src)[*]) = "testME";
+    $var(x) = "j";
+    avp_subst("$avp(src)", "/e/$var(x)/gi");
+    route(CHECK);
+
+    $(avp(src)[*]) = "testME";
+    $var(x) = "/e/j/gi";
+    avp_subst_pv("$avp(src)", "$var(x)");
+    route(CHECK);
+
+    $(avp(src)[*]) = "testME";
+    $var(z) = "j";
+    $var(y) = "e";
+    $var(x) = "/" + $var(y) + "/" + $var(z) + "/gi";
+    avp_subst_pv("$avp(src)", "$var(x)");
+    route(CHECK);
+
+    $(avp(src)[*]) = "testME";
+    $var(z) = "j";
+    $var(y) = "e";
+    avp_subst_pv("$avp(src)", "/$var(y)/$var(z)/gi");
+    route(CHECK);
+
+    $(avp(src)[*]) = "testME";
+    $var(z) = "j";
+    $var(y) = "e";
+    avp_subst_pv("$avp(src)", "/" + $var(y) + "/" + $var(z) + "/gi");
+    route(CHECK);
+
+    $(avp(src)[*]) = "testME";
+    avp_subst_pv("$avp(src)", "/e/j/gi");
+    route(CHECK);
+
+    send_reply("200", "OK");
+}
+
+route[CHECK] {
+    if($avp(src) == $var(res)) {
+        xlog("test$var(t): OK\n");
+    } else {
+        xlog("test$var(t): $(avp(src)[*])\n");
+    }
+    $var(t) = $var(t) + 1;
+}
+

+ 25 - 0
units/tavpop0001/tavpop0001.sh

@@ -0,0 +1,25 @@
+#!/bin/bash
+
+. ../../etc/config
+. ../../libs/utils
+
+LOG=/tmp/kamailio-tavpop0001.log
+
+echo "--- start kamailio -f ./kamailio-tavpop0001.cfg"
+${KAMBIN} -P ${KAMPID} -w ${KAMRUN} -Y ${KAMRUN} \
+	-f ./kamailio-tavpop0001.cfg -a no -ddd -E 2>&1 | tee ${LOG} &
+sleep 1
+sipsak -M -s sip:[email protected]
+sleep 1
+kill_pidfile ${KAMPID}
+sleep 1
+echo
+echo "--- grep output"
+echo
+for i in 0 1 2 3 4 5 6 7 8 9; do
+	if ! grep -q "test${i}: OK" ${LOG}; then
+		echo "test${i} failed"
+		exit 1
+	fi
+done
+exit 0