summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2008-06-26 12:26:52 +0000
committerNanang Izzuddin <nanang@teluu.com>2008-06-26 12:26:52 +0000
commit6a60cb0dca962dae6a8b9860d13ff3f2a448311d (patch)
tree361c81a2333ec93d4364ab2f19a4aeca3fdb7f85
parent09fd72ad28fee7079e6e7bf46008780db0be5d15 (diff)
Ticket #543: Updated PESQ test, sound device used only by one side to avoid contention
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2057 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjsip-apps/src/test-pjsua/inc_cfg.py4
-rw-r--r--pjsip-apps/src/test-pjsua/mod_pesq.py12
-rw-r--r--pjsip-apps/src/test-pjsua/run.py4
-rw-r--r--pjsip-apps/src/test-pjsua/scripts-pesq/100_defaults.py2
-rw-r--r--pjsip-apps/src/test-pjsua/scripts-pesq/101_defaults.py17
-rw-r--r--pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_g711a.py5
-rw-r--r--pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_g711u.py5
-rw-r--r--pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_g722.py5
-rw-r--r--pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_gsm.py5
-rw-r--r--pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_ilbc.py5
-rw-r--r--pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_speex_16000.py5
-rw-r--r--pjsip-apps/src/test-pjsua/scripts-pesq/200_codec_speex_8000.py5
-rw-r--r--pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_g711a.py15
-rw-r--r--pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_g711u.py15
-rw-r--r--pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_g722.py15
-rw-r--r--pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_gsm.py15
-rw-r--r--pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_ilbc.py15
-rw-r--r--pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_speex_16000.py15
-rw-r--r--pjsip-apps/src/test-pjsua/scripts-pesq/201_codec_speex_8000.py15
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