File: test_octave.sh.in

package info (click to toggle)
plplot 5.15.0%2Bdfsg-19
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 31,312 kB
  • sloc: ansic: 79,707; xml: 28,583; cpp: 20,033; ada: 19,456; tcl: 12,081; f90: 11,431; ml: 7,276; java: 6,863; python: 6,792; sh: 3,274; perl: 828; lisp: 75; makefile: 50; sed: 34; fortran: 5
file content (129 lines) | stat: -rwxr-xr-x 3,732 bytes parent folder | download | duplicates (3)
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!@SH_EXECUTABLE@
# Test suite for octave examples.
#
# Copyright (C) 2004-2015  Alan W. Irwin
# Copyright (C) 2004  Rafael Laboissiere
#
# This file is part of PLplot.
#
# PLplot is free software; you can redistribute it and/or modify
# it under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PLplot is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public License
# along with PLplot; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

# This is called from plplot-test.sh with $octave, $octavedir, $device,
# $dsuffix and $options defined.
# Assumes that $option starts and are '-' separated.

lang="o"
export lang

# Launch an Octave script that exercises all the demos
$octave -f -q  <<EOF 2> octave_${device}_test.error

# Disable warnings about shadowed functions - PLplot is _supposed_ to shadow the core functions
warning("off","Octave:shadowed-function");

addpath(getenv("octavedir"));

# Check verbose_test variable
if (strcmp(getenv("verbose_test"),"on") == 1)
    verbose_test = 1;
else
    verbose_test = 0;
endif

plplot_stub;
t = char(strsplit("${options}", "-"));
if (t)
    t(1,:)="";
    for i=1:rows(t)
        tt = deblank (t(i,:)); len = length(tt);
        ix = index(tt," ");
        if (ix == 0); ix = len; len = 0; endif
        plsetopt(tt(1:ix), tt(ix+1:len));
    endfor
endif

# Subset of p examples selected that seem to work ok with noninteractive
# devices.

# Remove 7, 16 until plshade1 fix is done.

for i=[1:6 8 9 13 15 21] ;
    if (verbose_test)
	printf("p%d\n",i);
    endif
    figure(i,"${device}",sprintf("${OUTPUT_DIR}/p%d%%n.${dsuffix}",i));
    feval(sprintf("p%d",i))
    closefig
endfor
#plot equivalent of x??c examples.
# Example 32 not implemented because there has been no call for propagation
# and it exercises no new API.
failed = [] ;
for i=[0:31] ;
    if (i == 18 || i == 24 || i == 26)
        continue;
    endif
    ofile = sprintf("${OUTPUT_DIR}/x%.2d${lang}_${dsuffix}.txt",i);
    strm = fopen(ofile,"w");
    cmd = sprintf("x%.2dc",i);
    if (verbose_test)
	printf("%s\n",cmd);
    endif
    t = char(strsplit("${options}", "-"));
    if (t)
        t(1,:)="";
        for j=1:rows(t)
            tt = deblank (t(j,:)); len = length(tt);
       	    ix = index(tt," ");
	    if (ix == 0); ix = len; len = 0; endif
	    plSetOpt(deblank(tt(1:ix)), tt(ix:len));
        endfor
    endif
    device="${device}";
    plSetOpt("dev", device);
#o trailer on filename e.g., x01o.ps) to distinguish from other
#common examples.
    file = sprintf("${OUTPUT_DIR}/x%.2d${lang}%%n.${dsuffix}",i);
    plSetOpt("o", file);
    if i == 14
	file2 = sprintf("${OUTPUT_DIR}/x%.2da${lang}%%n.${dsuffix}",i);
    endif
    eval(cmd, "failed = [failed, i] ;");
    fclose(strm);
    clear file2;
endfor
if ! isempty (failed)
    printf ("Failed tests: ");
    for i = 1 : length (failed)
        if i != 1
            printf (", ");
        endif
        printf ("x%.2dc.m", failed (i));
    endfor
    printf ("\n");
    exit (1);
endif
EOF
status_code=$?
cat octave_${device}_test.error
if [ "$status_code" -ne 0 ] ; then
    exit $status_code
fi
# Look for any PLPLOT ERROR messages from plwarn that do not result in an
# exit code.
is_error=`grep -l 'PLPLOT ERROR' octave_${device}_test.error`
if [ -n "$is_error" ] ; then
    exit 1
fi