[107161] branches/gsoc13-tests/tests/test/checksums-1

marius at macports.org marius at macports.org
Thu Jun 20 11:06:20 PDT 2013


Revision: 107161
          https://trac.macports.org/changeset/107161
Author:   marius at macports.org
Date:     2013-06-20 11:06:20 -0700 (Thu, 20 Jun 2013)
Log Message:
-----------
Checksum testing using tcltest.

Modified Paths:
--------------
    branches/gsoc13-tests/tests/test/checksums-1/Portfile

Added Paths:
-----------
    branches/gsoc13-tests/tests/test/checksums-1/checksum.tcl
    branches/gsoc13-tests/tests/test/checksums-1/test_checksum.tcl

Modified: branches/gsoc13-tests/tests/test/checksums-1/Portfile
===================================================================
--- branches/gsoc13-tests/tests/test/checksums-1/Portfile	2013-06-20 18:02:21 UTC (rev 107160)
+++ branches/gsoc13-tests/tests/test/checksums-1/Portfile	2013-06-20 18:06:20 UTC (rev 107161)
@@ -32,4 +32,4 @@
 
 test {
 	# test is actually running checksum target
-}
\ No newline at end of file
+}

Added: branches/gsoc13-tests/tests/test/checksums-1/checksum.tcl
===================================================================
--- branches/gsoc13-tests/tests/test/checksums-1/checksum.tcl	                        (rev 0)
+++ branches/gsoc13-tests/tests/test/checksums-1/checksum.tcl	2013-06-20 18:06:20 UTC (rev 107161)
@@ -0,0 +1,89 @@
+set autoconf "../../../Mk/macports.autoconf.mk"
+
+# Sets $bindir variable from macports.autoconf.mk
+# autogenerated file.
+proc load_variables {} {
+    global autoconf
+    global bindir
+
+    if { [file exists $autoconf] == 0 } {
+        puts "$autoconf does not exist."
+        exit 1
+    }
+
+    set line [get_line $autoconf "prefix"]
+    set prefix [lrange [split $line " "] 1 1]
+
+    set line [get_line $autoconf "bindir"]
+    set bin [lrange [split $line "/"] 1 1]
+
+    set bindir $prefix/$bin/
+}
+
+# Executes port clean.
+proc clean {} {
+    global bindir
+
+    set args "clean"
+    set cmd "port"
+
+    set result [eval exec $bindir$cmd $args]]
+}
+
+# Runs the portfile.
+proc run {} {
+    global bindir
+
+    set args "-d test"
+    set output "output"
+    set cmd "port"
+
+    set result [catch {eval exec $bindir$cmd $args >&output} ]
+    return $result
+}
+
+# Returns the line containint a given string
+# from a given file, or -1 if nothing is found.
+proc get_line {filename lookup} {
+    set fp [open $filename r]
+
+    while {[gets $fp line] != -1} {
+        set line [string tolower $line]
+
+        if {[string first $lookup $line 0] != -1} {
+            close $fp
+            return $line
+        }
+    }
+    return -1
+}
+
+
+proc get_md5 {filename} {
+    set md5 "debug: calculated (md5)"
+
+    set line [get_line $filename $md5]
+    set result [lrange [split $line " "] 4 4]
+
+    return $result
+}
+
+
+proc get_sha {filename} {
+    set sha "debug: calculated (sha1)"
+
+    set line [get_line $filename $sha]
+    set result [lrange [split $line " "] 4 4]
+
+    return $result
+}
+
+
+proc get_rmd {filename} {
+    set sha "debug: calculated (rmd160)"
+
+    set line [get_line $filename $sha]
+    set result [lrange [split $line " "] 4 4]
+
+    return $result
+}

Added: branches/gsoc13-tests/tests/test/checksums-1/test_checksum.tcl
===================================================================
--- branches/gsoc13-tests/tests/test/checksums-1/test_checksum.tcl	                        (rev 0)
+++ branches/gsoc13-tests/tests/test/checksums-1/test_checksum.tcl	2013-06-20 18:06:20 UTC (rev 107161)
@@ -0,0 +1,57 @@
+package require tcltest 2
+namespace import tcltest::*
+
+source checksum.tcl
+
+set file "output"
+set dir "work"
+
+test md5_checksum {
+    Regression test for MD5 Checksum.
+} -constraints {
+    root
+} -setup {
+    if { [file exists $file] == 0 } {
+        load_variables
+        clean
+        run
+    }
+} -body {
+    get_md5 $file
+} -result "d41d8cd98f00b204e9800998ecf8427e"
+
+
+test sha1_checksum {
+    Regression test for SHA1 Checksum.
+} -constraints {
+    root
+} -setup {
+    if { [file exists $file] == 0 } {
+        load_variables
+        clean
+        run
+    }
+} -body {
+    get_sha $file
+} -result "da39a3ee5e6b4b0d3255bfef95601890afd80709"
+
+
+test rmd160_checksum {
+    Regression test for RMD160 Checksum.
+} -constraints {
+    root
+} -setup {
+    if { [file exists $file] == 0 } {
+        load_variables
+        clean
+        run
+    }
+} -body {
+    get_rmd $file
+} -result "9c1185a5c5e9fc54612808977ee8f548b2258d31"
+
+
+# remove output file and print results
+removeFile $file
+removeDirectory $dir
+cleanupTests
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20130620/f154e470/attachment.html>


More information about the macports-changes mailing list