diff options
19 files changed, 153 insertions, 26 deletions
diff --git a/pjsip-apps/src/test-pjsua/inc_cfg.py b/pjsip-apps/src/test-pjsua/inc_cfg.py index 78dc04f3..6f3219c9 100644 --- a/pjsip-apps/src/test-pjsua/inc_cfg.py +++ b/pjsip-apps/src/test-pjsua/inc_cfg.py @@ -67,6 +67,8 @@ class TestParam: title = "" # params is list containing InstanceParams objects inst_params = [] + # flag if this tes should be skipped + skip = None # list of Expect instances, to be filled at run-time by # the test program process = [] @@ -77,11 +79,13 @@ class TestParam: def __init__( self, title, # Test title inst_params, # InstanceParam's as list + skip=False, func=None, post_func=None, user_data=None): self.title = title self.inst_params = inst_params + self.skip = skip self.test_func = func self.post_func = post_func self.user_data = user_data diff --git a/pjsip-apps/src/test-pjsua/mod_pesq.py b/pjsip-apps/src/test-pjsua/mod_pesq.py index 3c1629d9..431b312b 100644 --- a/pjsip-apps/src/test-pjsua/mod_pesq.py +++ b/pjsip-apps/src/test-pjsua/mod_pesq.py @@ -25,7 +25,7 @@ cfg_file = imp.load_source("cfg_file", sys.argv[2]) # PESQ configs # PESQ_THRESHOLD specifies the minimum acceptable PESQ MOS value, so test can be declared successful PESQ = "tools/pesq.exe" -PESQ_THRESHOLD = 1.0 +PESQ_THRESHOLD = 3.0 # UserData class mod_pesq_user_data: @@ -38,6 +38,10 @@ class mod_pesq_user_data: # Test body function def test_func(t, user_data): + + if len(t.process) == 0: + return + ua1 = t.process[0] ua2 = t.process[1] @@ -93,16 +97,16 @@ def post_func(t, user_data): pesq_out = pesq_proc.communicate() # Parse ouput - mo_pesq_out = re.compile("Prediction\s+:\s+PESQ_MOS\s+=\s+(.+)\s*").search(pesq_out[0]) + mo_pesq_out = re.compile("Prediction[^=]+=\s+([\d\.]+)\s*").search(pesq_out[0]) if (mo_pesq_out == None): raise TestError("Failed to fetch PESQ result") # Evaluate the similarity value pesq_res = mo_pesq_out.group(1) if (float(pesq_res) >= PESQ_THRESHOLD): - endpt.trace("Success, PESQ result=" + pesq_res) + endpt.trace("Success, PESQ result = " + pesq_res) else: - endpt.trace("Failed, PESQ result=" + pesq_res) + endpt.trace("Failed, PESQ result = " + pesq_res) raise TestError("WAV seems to be degraded badly") diff --git a/pjsip-apps/src/test-pjsua/run.py b/pjsip-apps/src/test-pjsua/run.py index 9026f4f8..95d6d45e 100644 --- a/pjsip-apps/src/test-pjsua/run.py +++ b/pjsip-apps/src/test-pjsua/run.py @@ -143,6 +143,10 @@ if script.test == None: print "Error: no test defined" sys.exit(1) +if script.test.skip: + print "Test " + script.test.title + " is skipped" + sys.exit(0) + if len(script.test.inst_params) == 0: print "Error: test doesn't contain pjsua run descriptions" sys.exit(1) diff --git a/pjsip-apps/src/test-pjsua/scripts-pesq/100_defaults.py b/pjsip-apps/src/test-pjsua/scripts-pesq/100_defaults.py index ffda20f0..32454d76 100644 --- a/pjsip-apps/src/test-pjsua/scripts-pesq/100_defaults.py +++ b/pjsip-apps/src/test-pjsua/scripts-pesq/100_defaults.py @@ -12,6 +12,6 @@ test_param = TestParam( "PESQ defaults pjsua settings", [ InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --play-file wavs/input.16.wav --auto-play-hangup"), - InstanceParam("UA2", ADD_PARAM + " --max-calls=1 --rec-file wavs/tmp.16.wav --clock-rate 16000 --auto-answer 200 --auto-rec") + InstanceParam("UA2", "--null-audio --max-calls=1 --rec-file wavs/tmp.16.wav --clock-rate 16000 --auto-answer 200 --auto-rec") ] ) diff --git a/pjsip-apps/src/test-pjsua/scripts-pesq/101_defaults.py b/pjsip-apps/src/test-pjsua/scripts-pesq/101_defaults.py new file mode 100644 index 00000000..16c9eff0 --- /dev/null +++ b/pjsip-apps/src/test-pjsua/scripts-pesq/101_defaults.py @@ -0,0 +1,17 @@ +# $Id$ +# +from inc_cfg import * + +# Call with default pjsua settings +test_param = TestParam( + "PESQ defaults pjsua settings (RX side uses snd dev)", + [ + InstanceParam("UA1", "--max-calls=1 --play-file wavs/input.16.wav --auto-play-hangup --null-audio"), + InstanceParam("UA2", "--max-calls=1 --rec-file wavs/tmp.16.wav --clock-rate 16000 --auto-answer 200 --auto-rec") + ] + ) + + +if (HAS_SND_DEV == 0): + test_param.skip = True + diff --git a/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_g711a.py b/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_g711a.py index bccced60..3360ba9e 100644 --- a/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_g711a.py +++ b/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_g711a.py @@ -1,18 +1,17 @@ # $Id$ # from inc_cfg import * -from config_site import * ADD_PARAM = "" if (HAS_SND_DEV == 0): ADD_PARAM += "--null-audio" -# Simple call +# Call with PCMA codec test_param = TestParam( "PESQ codec PCMA", [ InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec pcma --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup"), - InstanceParam("UA2", ADD_PARAM + " --max-calls=1 --add-codec pcma --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec") + InstanceParam("UA2", "--null-audio --max-calls=1 --add-codec pcma --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec") ] ) diff --git a/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_g711u.py b/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_g711u.py index d4955d88..c50dc4fe 100644 --- a/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_g711u.py +++ b/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_g711u.py @@ -1,18 +1,17 @@ # $Id$ # from inc_cfg import * -from config_site import * ADD_PARAM = "" if (HAS_SND_DEV == 0): ADD_PARAM += "--null-audio" -# Simple call +# Call with PCMU codec test_param = TestParam( "PESQ codec PCMU", [ InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec pcmu --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup"), - InstanceParam("UA2", ADD_PARAM + " --max-calls=1 --add-codec pcmu --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec") + InstanceParam("UA2", "--null-sound --max-calls=1 --add-codec pcmu --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec") ] ) diff --git a/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_g722.py b/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_g722.py index e08d5235..23f29c7e 100644 --- a/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_g722.py +++ b/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_g722.py @@ -1,18 +1,17 @@ # $Id$ # from inc_cfg import * -from config_site import * ADD_PARAM = "" if (HAS_SND_DEV == 0): ADD_PARAM += "--null-audio" -# Simple call +# Call with G722 codec test_param = TestParam( "PESQ codec G722", [ InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec g722 --clock-rate 16000 --play-file wavs/input.16.wav --auto-play-hangup"), - InstanceParam("UA2", ADD_PARAM + " --max-calls=1 --add-codec g722 --clock-rate 16000 --rec-file wavs/tmp.16.wav --auto-answer 200 --auto-rec") + InstanceParam("UA2", "--null-sound --max-calls=1 --add-codec g722 --clock-rate 16000 --rec-file wavs/tmp.16.wav --auto-answer 200 --auto-rec") ] ) diff --git a/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_gsm.py b/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_gsm.py index 9cf38ff8..8aea1ac2 100644 --- a/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_gsm.py +++ b/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_gsm.py @@ -1,18 +1,17 @@ # $Id$ # from inc_cfg import * -from config_site import * ADD_PARAM = "" if (HAS_SND_DEV == 0): ADD_PARAM += "--null-audio" -# Simple call +# Call with GSM codec test_param = TestParam( "PESQ codec GSM", [ InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec gsm --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup"), - InstanceParam("UA2", ADD_PARAM + " --max-calls=1 --add-codec gsm --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec") + InstanceParam("UA2", "--null-sound --max-calls=1 --add-codec gsm --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec") ] ) diff --git a/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_ilbc.py b/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_ilbc.py index 596916b9..91ac0ae9 100644 --- a/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_ilbc.py +++ b/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_ilbc.py @@ -1,18 +1,17 @@ # $Id$ # from inc_cfg import * -from config_site import * ADD_PARAM = "" if (HAS_SND_DEV == 0): ADD_PARAM += "--null-audio" -# Simple call +# Call with iLBC codec test_param = TestParam( "PESQ codec iLBC", [ InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec ilbc --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup"), - InstanceParam("UA2", ADD_PARAM + " --max-calls=1 --add-codec ilbc --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec") + InstanceParam("UA2", "--null-sound --max-calls=1 --add-codec ilbc --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec") ] ) diff --git a/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_speex_16000.py b/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_speex_16000.py index c169d5f9..04e91521 100644 --- a/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_speex_16000.py +++ b/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_speex_16000.py @@ -1,18 +1,17 @@ # $Id$ # from inc_cfg import * -from config_site import * ADD_PARAM = "" if (HAS_SND_DEV == 0): ADD_PARAM += "--null-audio" -# Simple call +# Call with Speex/16000 codec test_param = TestParam( "PESQ codec Speex WB", [ InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --clock-rate 16000 --add-codec speex/16000 --play-file wavs/input.16.wav --auto-play-hangup"), - InstanceParam("UA2", ADD_PARAM + " --max-calls=1 --clock-rate 16000 --add-codec speex/16000 --rec-file wavs/tmp.16.wav --auto-answer 200 --auto-rec") + InstanceParam("UA2", "--null-sound --max-calls=1 --clock-rate 16000 --add-codec speex/16000 --rec-file wavs/tmp.16.wav --auto-answer 200 --auto-rec") ] ) diff --git a/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_speex_8000.py b/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_speex_8000.py index 5a2606f1..3d89bbd1 100644 --- a/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_speex_8000.py +++ b/pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_speex_8000.py @@ -1,18 +1,17 @@ # $Id$ # from inc_cfg import * -from config_site import * ADD_PARAM = "" if (HAS_SND_DEV == 0): ADD_PARAM += "--null-audio" -# Simple call +# Call with Speex/8000 codec test_param = TestParam( "PESQ codec Speex NB", [ InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec speex/8000 --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup"), - InstanceParam("UA2", ADD_PARAM + " --max-calls=1 --add-codec speex/8000 --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec") + InstanceParam("UA2", "--null-sound --max-calls=1 --add-codec speex/8000 --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec") ] ) diff --git a/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_g711a.py b/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_g711a.py new file mode 100644 index 00000000..7b71b812 --- /dev/null +++ b/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_g711a.py @@ -0,0 +1,15 @@ +# $Id$ +# +from inc_cfg import * + +# Call with PCMA codec +test_param = TestParam( + "PESQ codec PCMA (RX side uses snd dev)", + [ + InstanceParam("UA1", "--max-calls=1 --add-codec pcma --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup --null-audio"), + InstanceParam("UA2", "--max-calls=1 --add-codec pcma --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec") + ] + ) + +if (HAS_SND_DEV == 0): + test_param.skip = True diff --git a/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_g711u.py b/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_g711u.py new file mode 100644 index 00000000..d73ef74c --- /dev/null +++ b/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_g711u.py @@ -0,0 +1,15 @@ +# $Id$ +# +from inc_cfg import * + +# Call with PCMU codec +test_param = TestParam( + "PESQ codec PCMU (RX side uses snd dev)", + [ + InstanceParam("UA1", "--max-calls=1 --add-codec pcmu --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup --null-audio"), + InstanceParam("UA2", "--max-calls=1 --add-codec pcmu --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec") + ] + ) + +if (HAS_SND_DEV == 0): + test_param.skip = True diff --git a/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_g722.py b/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_g722.py new file mode 100644 index 00000000..33be2965 --- /dev/null +++ b/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_g722.py @@ -0,0 +1,15 @@ +# $Id$ +# +from inc_cfg import * + +# Call with G722 codec +test_param = TestParam( + "PESQ codec G722 (RX side uses snd dev)", + [ + InstanceParam("UA1", "--max-calls=1 --add-codec g722 --clock-rate 16000 --play-file wavs/input.16.wav --auto-play-hangup --null-audio"), + InstanceParam("UA2", "--max-calls=1 --add-codec g722 --clock-rate 16000 --rec-file wavs/tmp.16.wav --auto-answer 200 --auto-rec") + ] + ) + +if (HAS_SND_DEV == 0): + test_param.skip = True diff --git a/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_gsm.py b/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_gsm.py new file mode 100644 index 00000000..922183ac --- /dev/null +++ b/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_gsm.py @@ -0,0 +1,15 @@ +# $Id$ +# +from inc_cfg import * + +# Call with GSM codec +test_param = TestParam( + "PESQ codec GSM (RX side uses snd dev)", + [ + InstanceParam("UA1", "--max-calls=1 --add-codec gsm --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup --null-audio"), + InstanceParam("UA2", "--max-calls=1 --add-codec gsm --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec") + ] + ) + +if (HAS_SND_DEV == 0): + test_param.skip = True diff --git a/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_ilbc.py b/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_ilbc.py new file mode 100644 index 00000000..ad61f427 --- /dev/null +++ b/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_ilbc.py @@ -0,0 +1,15 @@ +# $Id$ +# +from inc_cfg import * + +# Call with iLBC codec +test_param = TestParam( + "PESQ codec iLBC (RX side uses snd dev)", + [ + InstanceParam("UA1", "--max-calls=1 --add-codec ilbc --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup --null-audio"), + InstanceParam("UA2", "--max-calls=1 --add-codec ilbc --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec") + ] + ) + +if (HAS_SND_DEV == 0): + test_param.skip = True diff --git a/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_speex_16000.py b/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_speex_16000.py new file mode 100644 index 00000000..32543ccc --- /dev/null +++ b/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_speex_16000.py @@ -0,0 +1,15 @@ +# $Id$ +# +from inc_cfg import * + +# Call with Speex/16000 codec +test_param = TestParam( + "PESQ codec Speex WB (RX side uses snd dev)", + [ + InstanceParam("UA1", "--max-calls=1 --clock-rate 16000 --add-codec speex/16000 --play-file wavs/input.16.wav --auto-play-hangup --null-audio"), + InstanceParam("UA2", "--max-calls=1 --clock-rate 16000 --add-codec speex/16000 --rec-file wavs/tmp.16.wav --auto-answer 200 --auto-rec") + ] + ) + +if (HAS_SND_DEV == 0): + test_param.skip = True diff --git a/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_speex_8000.py b/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_speex_8000.py new file mode 100644 index 00000000..e0049c8a --- /dev/null +++ b/pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_speex_8000.py @@ -0,0 +1,15 @@ +# $Id$ +# +from inc_cfg import * + +# Call with Speex/8000 codec +test_param = TestParam( + "PESQ codec Speex NB (RX side uses snd dev)", + [ + InstanceParam("UA1", "--max-calls=1 --add-codec speex/8000 --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup --null-audio"), + InstanceParam("UA2", "--max-calls=1 --add-codec speex/8000 --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec") + ] + ) + +if (HAS_SND_DEV == 0): + test_param.skip = True |