File: parse-testsuite.pl

package info (click to toggle)
libxml-node-perl 0.11-9
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 160 kB
  • ctags: 40
  • sloc: perl: 564; xml: 80; makefile: 5
file content (49 lines) | stat: -rw-r--r-- 1,100 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/perl -w
#

use XML::Node;

# The following sample script calculates how many test cases there are in 
#   a test suite XML file.
#
# The XML file name can be passed as a parameter. Example:
#   perl test.pl test.xml
#

my $suite_name = "";
my $testcase_name = "";
my $xml_filename = "test.xml";
my $testcase_no = 0;
my $arg1 = shift;

if ($arg1) {
    $xml_filename = $arg1;
}

$p = XML::Node->new();

$p->register(">TestTalk>TestSuite>Name","char" => \$ suite_name);
$p->register(">TestTalk>TestSuite>TestCase>Name","char" => \$testcase_name);
$p->register(">TestTalk>TestSuite>TestCase","end" => \& handle_testcase_end);
$p->register(">TestTalk>TestSuite","end" => \& handle_testsuite_end);

print "\nProcessing file [$xml_filename]...\n\n";
$p->parsefile($xml_filename);


sub handle_testcase_end
{
    print "Found test case [$testcase_name]\n";
    $testcase_name = "";
    $testcase_no ++;
}

sub handle_testsuite_end
{
    print "\n--There are $testcase_no test cases in test suite [$suite_name]\n\n";
    $testcase_name = "";
}