Added regression test script.
This commit is contained in:
		
							parent
							
								
									588ae30bef
								
							
						
					
					
						commit
						163a915a6d
					
				
							
								
								
									
										91
									
								
								gui/Scripts/regression-test.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										91
									
								
								gui/Scripts/regression-test.py
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,91 @@
 | 
			
		||||
#!/usr/bin/env python
 | 
			
		||||
 | 
			
		||||
"""
 | 
			
		||||
	Scyther : An automatic verifier for security protocols.
 | 
			
		||||
	Copyright (C) 2007-2012 Cas Cremers
 | 
			
		||||
 | 
			
		||||
	This program is free software; you can redistribute it and/or
 | 
			
		||||
	modify it under the terms of the GNU General Public License
 | 
			
		||||
	as published by the Free Software Foundation; either version 2
 | 
			
		||||
	of the License, or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
	This program 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 General Public License for more details.
 | 
			
		||||
 | 
			
		||||
	You should have received a copy of the GNU General Public License
 | 
			
		||||
	along with this program; if not, write to the Free Software
 | 
			
		||||
	Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
def testSet(blacklist=[]):
 | 
			
		||||
    import os
 | 
			
		||||
 | 
			
		||||
    prefix = "../Protocols/"
 | 
			
		||||
    dl = os.listdir(prefix)
 | 
			
		||||
    fl = []
 | 
			
		||||
    for fn in dl:
 | 
			
		||||
        if fn.endswith(".spdl"):
 | 
			
		||||
            okay = True
 | 
			
		||||
            for fb in blacklist:
 | 
			
		||||
                if fn.startswith(fb):
 | 
			
		||||
                    okay = False
 | 
			
		||||
                    break
 | 
			
		||||
            if okay:
 | 
			
		||||
                fl.append((prefix,fn))
 | 
			
		||||
    return fl
 | 
			
		||||
 | 
			
		||||
def evaluate(fn,prefix=""):
 | 
			
		||||
    import subprocess
 | 
			
		||||
    import tempfile
 | 
			
		||||
 | 
			
		||||
    cmd = "../Scyther/scyther-linux"
 | 
			
		||||
    args = [cmd,"--max-runs=4","--plain",fn]
 | 
			
		||||
 | 
			
		||||
    fstdout = tempfile.TemporaryFile()
 | 
			
		||||
    fstderr = tempfile.TemporaryFile()
 | 
			
		||||
 | 
			
		||||
    subprocess.call(args,stdout=fstdout,stderr=fstderr)
 | 
			
		||||
 | 
			
		||||
    fstdout.seek(0)
 | 
			
		||||
    fstderr.seek(0)
 | 
			
		||||
 | 
			
		||||
    res = ""
 | 
			
		||||
    for l in fstdout.xreadlines():
 | 
			
		||||
        res += prefix + l.strip() + "\n"
 | 
			
		||||
    #for l in fstderr.xreadlines():
 | 
			
		||||
    #    print l
 | 
			
		||||
 | 
			
		||||
    fstdout.close()
 | 
			
		||||
    fstderr.close()
 | 
			
		||||
    return res
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    dest = "regression-test.txt"
 | 
			
		||||
    output = "regression-test.txt.tmp"
 | 
			
		||||
 | 
			
		||||
    fp = open(output, 'w')
 | 
			
		||||
 | 
			
		||||
    fl = testSet(blacklist=['ksl'])
 | 
			
		||||
    cnt = 1
 | 
			
		||||
    tres = ""
 | 
			
		||||
    for (prefix,fn) in sorted(fl):
 | 
			
		||||
        print "Evaluating %s (%i/%i)" % (fn,cnt,len(fl))
 | 
			
		||||
        res = evaluate(prefix+fn, "%s\t" % (fn))
 | 
			
		||||
        fp.write(res)
 | 
			
		||||
        tres += res
 | 
			
		||||
        cnt += 1
 | 
			
		||||
    fp.close()
 | 
			
		||||
 | 
			
		||||
    fp = open(dest, 'w')
 | 
			
		||||
    fp.write(tres)
 | 
			
		||||
    fp.close()
 | 
			
		||||
 | 
			
		||||
    print res
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    main()
 | 
			
		||||
							
								
								
									
										64
									
								
								gui/Scripts/regression-test.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								gui/Scripts/regression-test.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,64 @@
 | 
			
		||||
BKE.spdl	claim	bke,I	SKR_4	kir	Ok	[no attack within bounds]
 | 
			
		||||
BKE.spdl	claim	bke,R	SKR_7	kir	Ok	[no attack within bounds]
 | 
			
		||||
TLS-Paulson.spdl	claim	tlspaulson,a	SKR_9a	hash(sid,hash(pms,na,nb),na,pa,a,nb,pb,b,true)	Ok	[no attack within bounds]
 | 
			
		||||
TLS-Paulson.spdl	claim	tlspaulson,a	SKR_9b	hash(sid,hash(pms,na,nb),na,pa,a,nb,pb,b,false)	Ok	[no attack within bounds]
 | 
			
		||||
TLS-Paulson.spdl	claim	tlspaulson,b	SKR_10a	hash(sid,hash(pms,na,nb),na,pa,a,nb,pb,b,true)	Ok	[no attack within bounds]
 | 
			
		||||
TLS-Paulson.spdl	claim	tlspaulson,b	SKR_10b	hash(sid,hash(pms,na,nb),na,pa,a,nb,pb,b,false)	Ok	[no attack within bounds]
 | 
			
		||||
ccitt509-1.spdl	claim	ccitt509-1,R	Nisynch_3	-	Ok	[proof of correctness]
 | 
			
		||||
ccitt509-1c.spdl	claim	ccitt509-1c,R	Nisynch_3	-	Ok	[proof of correctness]
 | 
			
		||||
ccitt509-3.spdl	claim	ccitt509-3,I	Nisynch_I1	-	Ok	[proof of correctness]
 | 
			
		||||
ccitt509-3.spdl	claim	ccitt509-3,I	Secret_I2	Ya	Ok	[proof of correctness]
 | 
			
		||||
ccitt509-3.spdl	claim	ccitt509-3,I	Secret_I3	Yb	Ok	[proof of correctness]
 | 
			
		||||
ccitt509-3.spdl	claim	ccitt509-3,R	Nisynch_R1	-	Fail	[at least 3 attacks]
 | 
			
		||||
ccitt509-3.spdl	claim	ccitt509-3,R	Secret_R2	Ya	Ok	[no attack within bounds]
 | 
			
		||||
ccitt509-3.spdl	claim	ccitt509-3,R	Secret_R3	Yb	Ok	[no attack within bounds]
 | 
			
		||||
ccitt509-ban3.spdl	claim	ccitt509-ban3,I	Nisynch_4	-	Ok	[proof of correctness]
 | 
			
		||||
ccitt509-ban3.spdl	claim	ccitt509-ban3,R	Nisynch_5	-	Ok	[no attack within bounds]
 | 
			
		||||
needham-schroeder-lowe.spdl	claim	needhamschroederpk-Lowe,I	Secret_I1	Ni	Ok	[no attack within bounds]
 | 
			
		||||
needham-schroeder-lowe.spdl	claim	needhamschroederpk-Lowe,I	Secret_I2	Nr	Ok	[no attack within bounds]
 | 
			
		||||
needham-schroeder-lowe.spdl	claim	needhamschroederpk-Lowe,I	Nisynch_I3	-	Fail	[at least 3 attacks]
 | 
			
		||||
needham-schroeder-lowe.spdl	claim	needhamschroederpk-Lowe,R	Secret_R1	Nr	Ok	[no attack within bounds]
 | 
			
		||||
needham-schroeder-lowe.spdl	claim	needhamschroederpk-Lowe,R	Secret_R2	Ni	Ok	[no attack within bounds]
 | 
			
		||||
needham-schroeder-lowe.spdl	claim	needhamschroederpk-Lowe,R	Nisynch_R3	-	Fail	[at least 3 attacks]
 | 
			
		||||
needham-schroeder.spdl	claim	needhamschroederpk,I	Secret_I1	Ni	Ok	[no attack within bounds]
 | 
			
		||||
needham-schroeder.spdl	claim	needhamschroederpk,I	Secret_I2	Nr	Ok	[no attack within bounds]
 | 
			
		||||
needham-schroeder.spdl	claim	needhamschroederpk,I	Nisynch_I3	-	Fail	[at least 3 attacks]
 | 
			
		||||
needham-schroeder.spdl	claim	needhamschroederpk,R	Secret_R1	Nr	Fail	[at least 5 attacks]
 | 
			
		||||
needham-schroeder.spdl	claim	needhamschroederpk,R	Secret_R2	Ni	Fail	[at least 5 attacks]
 | 
			
		||||
needham-schroeder.spdl	claim	needhamschroederpk,R	Nisynch_R3	-	Fail	[at least 3 attacks]
 | 
			
		||||
smartright.spdl	claim	smartright,R	Nisynch_R1	-	Fail	[at least 1 attack]
 | 
			
		||||
splice-as-cj.spdl	claim	spliceAS-CJ,I	Secret_7	N2	Ok	[no attack within bounds]
 | 
			
		||||
splice-as-cj.spdl	claim	spliceAS-CJ,I	Niagree_9	-	Fail	[at least 1 attack]
 | 
			
		||||
splice-as-cj.spdl	claim	spliceAS-CJ,I	Nisynch_10	-	Fail	[at least 1 attack]
 | 
			
		||||
splice-as-cj.spdl	claim	spliceAS-CJ,R	Secret_8	N2	Ok	[no attack within bounds]
 | 
			
		||||
splice-as-cj.spdl	claim	spliceAS-CJ,R	Niagree_11	-	Fail	[at least 1 attack]
 | 
			
		||||
splice-as-cj.spdl	claim	spliceAS-CJ,R	Nisynch_12	-	Fail	[at least 1 attack]
 | 
			
		||||
splice-as-hc.spdl	claim	spliceAS-HC,I	Secret_7	N2	Ok	[no attack within bounds]
 | 
			
		||||
splice-as-hc.spdl	claim	spliceAS-HC,I	Niagree_9	-	Fail	[at least 1 attack]
 | 
			
		||||
splice-as-hc.spdl	claim	spliceAS-HC,I	Nisynch_10	-	Fail	[at least 1 attack]
 | 
			
		||||
splice-as-hc.spdl	claim	spliceAS-HC,R	Secret_8	N2	Ok	[no attack within bounds]
 | 
			
		||||
splice-as-hc.spdl	claim	spliceAS-HC,R	Niagree_11	-	Fail	[at least 1 attack]
 | 
			
		||||
splice-as-hc.spdl	claim	spliceAS-HC,R	Nisynch_12	-	Fail	[at least 1 attack]
 | 
			
		||||
splice-as.spdl	claim	spliceAS,I	Secret_7	N2	Ok	[no attack within bounds]
 | 
			
		||||
splice-as.spdl	claim	spliceAS,I	Niagree_9	-	Fail	[at least 1 attack]
 | 
			
		||||
splice-as.spdl	claim	spliceAS,I	Nisynch_10	-	Fail	[at least 1 attack]
 | 
			
		||||
splice-as.spdl	claim	spliceAS,R	Secret_8	N2	Ok	[no attack within bounds]
 | 
			
		||||
splice-as.spdl	claim	spliceAS,R	Niagree_11	-	Fail	[at least 1 attack]
 | 
			
		||||
splice-as.spdl	claim	spliceAS,R	Nisynch_12	-	Fail	[at least 1 attack]
 | 
			
		||||
woo-lam-pi-1.spdl	claim	woolamPi-1,R	Nisynch_R1	-	Fail	[at least 2 attacks]
 | 
			
		||||
woo-lam-pi-2.spdl	claim	woolamPi-2,R	Nisynch_R1	-	Fail	[at least 3 attacks]
 | 
			
		||||
woo-lam-pi-3.spdl	claim	woolamPi-3,R	Nisynch_R1	-	Fail	[at least 2 attacks]
 | 
			
		||||
woo-lam-pi-f.spdl	claim	woolamPi-f,R	Nisynch_R1	-	Fail	[at least 1 attack]
 | 
			
		||||
woo-lam-pi.spdl	claim	woolamPi,R	Nisynch_R1	-	Fail	[at least 2 attacks]
 | 
			
		||||
yahalom-ban-paulson-modified.spdl	claim	yahalom-BAN-Paulson-modified,A	Secret_5	kab	Ok	[no attack within bounds]
 | 
			
		||||
yahalom-ban-paulson-modified.spdl	claim	yahalom-BAN-Paulson-modified,B	Secret_6	kab	Ok	[no attack within bounds]
 | 
			
		||||
yahalom-ban-paulson.spdl	claim	yahalom-BAN-Paulson,A	SKR_5	kab	Ok	[no attack within bounds]
 | 
			
		||||
yahalom-ban-paulson.spdl	claim	yahalom-BAN-Paulson,B	SKR_6	kab	Ok	[no attack within bounds]
 | 
			
		||||
yahalom-lowe.spdl	claim	yahalom-Lowe,I	Secret_I1	Kir	Ok	[proof of correctness]
 | 
			
		||||
yahalom-lowe.spdl	claim	yahalom-Lowe,I	Nisynch_I2	-	Ok	[proof of correctness]
 | 
			
		||||
yahalom-lowe.spdl	claim	yahalom-Lowe,R	Secret_R1	Kir	Ok	[proof of correctness]
 | 
			
		||||
yahalom-lowe.spdl	claim	yahalom-Lowe,R	Nisynch_R2	-	Ok	[no attack within bounds]
 | 
			
		||||
yahalom.spdl	claim	yahalom,I	Secret_I1	Kir	Ok	[no attack within bounds]
 | 
			
		||||
yahalom.spdl	claim	yahalom,R	Secret_R1	Kir	Ok	[no attack within bounds]
 | 
			
		||||
yahalom.spdl	claim	yahalom,S	Secret_S1	Ni	Fail	[at least 1 attack]
 | 
			
		||||
yahalom.spdl	claim	yahalom,S	Secret_S2	Nr	Ok	[no attack within bounds]
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user