diff --git a/tests/regression/subckt-processing/Makefile.am b/tests/regression/subckt-processing/Makefile.am index 4bef8024e..b25a57a8f 100644 --- a/tests/regression/subckt-processing/Makefile.am +++ b/tests/regression/subckt-processing/Makefile.am @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in -TESTS = model-scope-5.cir +TESTS = global-1.cir model-scope-5.cir TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice diff --git a/tests/regression/subckt-processing/global-1.cir b/tests/regression/subckt-processing/global-1.cir new file mode 100644 index 000000000..9410aeb3a --- /dev/null +++ b/tests/regression/subckt-processing/global-1.cir @@ -0,0 +1,81 @@ +check treatment of multiple .global cards + +* (exec-spice "ngspice -b %s") +* (tests-aux-renumber) + +* multiple .global decks are "accumulative" + +.global n1001_t n1002_t +.global n1003_t + + +.subckt su1 1 +R2 1 0 10k +R3 n1001_t 0 2000.0 +.ends + +.subckt su2 1 +R2 1 0 10k +R3 n1002_t 0 4000.0 +.ends + +.subckt su3 1 +R2 1 0 10k +R3 n1003_t 0 8000.0 +.ends + + +i1 n1001_t 0 -3mA +R1 n1001_t 0 1000.0 + +i2 n1002_t 0 -5mA +R2 n1002_t 0 1000.0 + +i3 n1003_t 0 -9mA +R3 n1003_t 0 1000.0 + +X1 n1 su1 +X2 n1 su2 +X3 n1 su3 +Rn n1 0 100k + +v1g n1001_g 0 2.0000000 +v2g n1002_g 0 4.0000000 +v3g n1003_g 0 8.0000000 + +.control + +define mismatch(a,b,err) abs(a-b)>err + +op + +* listing extended + +let total_count = 0 +let fail_count = 0 + +let tests = 1001 + vector(3) + +foreach n $&tests + set n_test = "n{$n}_t" + set n_gold = "n{$n}_g" + if mismatch(v($n_test), v($n_gold), 1e-9) + let v_test = v($n_test) + let v_gold = v($n_gold) + echo "ERROR, test failure, v($n_test) = $&v_test but should be $&v_gold" + let fail_count = fail_count + 1 + end + let total_count = total_count + 1 +end + +if fail_count > 0 + echo "ERROR: $&fail_count of $&total_count tests failed" + quit 1 +else + echo "INFO: $&fail_count of $&total_count tests failed" + quit 0 +end + +.endc + +.end