All of lore.kernel.org
 help / color / mirror / Atom feed
From: <Tim.Bird@sony.com>
To: zhengrq.fnst@cn.fujitsu.com, fuego@lists.linuxfoundation.org
Subject: Re: [Fuego] [PATCH] pam: add test case for pam.
Date: Tue, 11 Sep 2018 21:47:26 +0000	[thread overview]
Message-ID: <ECADFF3FD767C149AD96A924E7EA6EAF7C1E057E@USCULXMSG01.am.sony.com> (raw)
In-Reply-To: <1536630888-82555-1-git-send-email-zhengrq.fnst@cn.fujitsu.com>

> -----Original Message-----
> From: Zheng Ruoqin
> 
> Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
> ---
>  engine/tests/Functional.pam/fuego_test.sh          | 19
> +++++++++++++++++++
>  engine/tests/Functional.pam/pam_test.sh            |  4 ++++
>  engine/tests/Functional.pam/parser.py              | 22
> ++++++++++++++++++++++
>  engine/tests/Functional.pam/spec.json              |  7 +++++++
>  .../Functional.pam/tests/pam_timestamp_check.sh    | 14 ++++++++++++++
>  5 files changed, 66 insertions(+)
>  create mode 100644 engine/tests/Functional.pam/fuego_test.sh
>  create mode 100644 engine/tests/Functional.pam/pam_test.sh
>  create mode 100644 engine/tests/Functional.pam/parser.py
>  create mode 100644 engine/tests/Functional.pam/spec.json
>  create mode 100644
> engine/tests/Functional.pam/tests/pam_timestamp_check.sh
> 
> diff --git a/engine/tests/Functional.pam/fuego_test.sh
> b/engine/tests/Functional.pam/fuego_test.sh
> new file mode 100644
> index 0000000..4be6015
> --- /dev/null
> +++ b/engine/tests/Functional.pam/fuego_test.sh
> @@ -0,0 +1,19 @@
> +function test_pre_check {
> +    is_on_target_path pam_timestamp_check PROGRAM_PAM
> +    assert_define PROGRAM_PAM "Missing 'pam_timestamp_check'
> program on target board"
> +}
> +
> +function test_deploy {
> +    put $TEST_HOME/pam_test.sh $BOARD_TESTDIR/fuego.$TESTDIR/
> +    put -r $TEST_HOME/tests $BOARD_TESTDIR/fuego.$TESTDIR/
> +}
> +
> +function test_run {
> +    report "cd $BOARD_TESTDIR/fuego.$TESTDIR;\
> +    sh -v pam_test.sh"
> +}
> +
> +function test_processing {
> +    log_compare "$TESTDIR" "1" "TEST-PASS" "p"
It is better to omit the line above.  If we expect 0 failures,
then it is better not to encode the number of successes.
Doing so makes it so we have to change this location as well
as the test, when we make a change to the number of testcases
in a particular test.

IOW - remove the line above.

> +    log_compare "$TESTDIR" "0" "TEST-FAIL" "n"
> +}
> diff --git a/engine/tests/Functional.pam/pam_test.sh
> b/engine/tests/Functional.pam/pam_test.sh
> new file mode 100644
> index 0000000..dd5ce37
> --- /dev/null
> +++ b/engine/tests/Functional.pam/pam_test.sh
> @@ -0,0 +1,4 @@
> +#!/bin/sh
> +for i in tests/*.sh; do
> +    sh $i
> +done
> diff --git a/engine/tests/Functional.pam/parser.py
> b/engine/tests/Functional.pam/parser.py
> new file mode 100644
> index 0000000..d85abd7
> --- /dev/null
> +++ b/engine/tests/Functional.pam/parser.py
> @@ -0,0 +1,22 @@
> +#!/usr/bin/python
> +# See common.py for description of command-line arguments
> +
> +import os, sys, collections
> +
> +sys.path.insert(0, os.environ['FUEGO_CORE'] + '/engine/scripts/parser')
> +import common as plib
> +
> +measurements = {}
> +measurements = collections.OrderedDict()
> +
> +regex_string = '^ -> (.*): TEST-(.*)$'
> +matches = plib.parse_log(regex_string)
> +
> +if matches:
> +    for m in matches:
> +        measurements['default.' + m[0]] = 'PASS' if m[1] == 'PASS' else 'FAIL'
> +
> +# split the output for each testcase
> +plib.split_output_per_testcase(regex_string, measurements)
> +
> +sys.exit(plib.process(measurements))

We do this often enough, that we should make a special case in the parser for
this exact sequence (maybe paramterized with a regular expression).

Something like:
#!/usr/bin/python
sys.path.insert(0, os.environ['FUEGO_CORE'] + '/engine/scripts/parser')
import sys
import common as plib
regex_string = '^ -> (.*): TEST-(.*)$'
sys.exit(plib.collect_PASS_FAIL_testcases(regex_string))

And, getting off on a tangent here, we should have the Fuego
core add $FUEGO_CORE/engine/scripts/parser to the
python path, before calling the parser module, and common.py
should be renamed plib.py, so this could be further reduced to:

#!/usr/bin/python
import sys, plib
sys.exit(plib.collect_PASS_FAIL_testcases(regex_string))

I don't suppose you would be willing to work on these
changes to the parsing core, would you?  That would be
really helpful, and would make future parsers much shorter.

> diff --git a/engine/tests/Functional.pam/spec.json
> b/engine/tests/Functional.pam/spec.json
> new file mode 100644
> index 0000000..64d84d7
> --- /dev/null
> +++ b/engine/tests/Functional.pam/spec.json
> @@ -0,0 +1,7 @@
> +{
> +    "testName": "Functional.pam",
> +    "specs": {
> +        "default": {}
> +    }
> +}
> +
> diff --git a/engine/tests/Functional.pam/tests/pam_timestamp_check.sh
> b/engine/tests/Functional.pam/tests/pam_timestamp_check.sh
> new file mode 100644
> index 0000000..785245f
> --- /dev/null
> +++ b/engine/tests/Functional.pam/tests/pam_timestamp_check.sh
> @@ -0,0 +1,14 @@
> +#!/bin/sh
> +
> +#  In target, run command pam_timestamp_check.
> +#  option "-k"
> +
> +test="pam_timestamp_check"
> +
> +if pam_timestamp_check -k
> +then
> +    echo " -> $test: TEST-PASS"
> +else
> +    echo " -> $test: TEST-FAIL"
> +fi;
> +
> --
> 1.8.3.1

I wish I knew what was being tested here.  Could you possibly
add a test.yaml for this test?  Even better would be if you
could create a file: Functional.pam.pam_timestamp_check_01.ftmp
to describe what this particular testcase is doing.

(See engine/tests/Functional.LTP.syscalls.inotify06.ftmp for an example
of a testcase ftmp file.)

Also, as with the others, I presume this is a placeholder for more pam
testcases to follow. 

I'm going to apply this one. 

Thanks,
 -- Tim


  reply	other threads:[~2018-09-11 21:47 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-11  1:54 [Fuego] [PATCH] pam: add test case for pam Zheng Ruoqin
2018-09-11 21:47 ` Tim.Bird [this message]
2018-09-14  7:21   ` Zheng, Ruoqin
2018-09-14 15:21     ` Tim.Bird

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ECADFF3FD767C149AD96A924E7EA6EAF7C1E057E@USCULXMSG01.am.sony.com \
    --to=tim.bird@sony.com \
    --cc=fuego@lists.linuxfoundation.org \
    --cc=zhengrq.fnst@cn.fujitsu.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.