<pre style='margin:0'>
Clemens Lang (neverpanic) pushed a commit to branch master
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/8ee43f710e4352636b65bf1df23bc0ca22e5a339">https://github.com/macports/macports-base/commit/8ee43f710e4352636b65bf1df23bc0ca22e5a339</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 8ee43f7  reclaim tests: Remove constraints, add turd test
</span>8ee43f7 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 8ee43f710e4352636b65bf1df23bc0ca22e5a339
</span>Author: Clemens Lang <cal@macports.org>
AuthorDate: Sun Jan 29 19:59:36 2017 +0100

<span style='display:block; white-space:pre;color:#404040;'>    reclaim tests: Remove constraints, add turd test
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Remove interactivity and root constraints from reclaim test by mocking
</span><span style='display:block; white-space:pre;color:#404040;'>    everything that would require these constraints.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Add a test to verify that .turd_MacPorts files are kept by reclaim.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    See: https://trac.macports.org/ticket/53436
</span>---
 src/macports1.0/tests/reclaim.test | 149 +++++++++++++++++--------------------
 1 file changed, 69 insertions(+), 80 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/tests/reclaim.test b/src/macports1.0/tests/reclaim.test
</span><span style='display:block; white-space:pre;color:#808080;'>index 60193d1..2ea7403 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/tests/reclaim.test
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/tests/reclaim.test
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2,6 +2,7 @@
</span> 
 package require tcltest 2
 package require reclaim 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+package require msgcat
</span> namespace import tcltest::*
 
 set pwd [file dirname [file normalize $argv0]]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -20,108 +21,96 @@ array set ui_options {}
</span> set ui_options(ports_noninteractive) yes
 mportinit ui_options
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# reclaim nees to be fixed to honor the noninteractive flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set setup_testdir {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set saved_portdbpath ${macports::portdbpath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set macports::portdbpath [makeDirectory "reclaim_test_tmpdir"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set lastreclaimfile [makeFile "0" "last_reclaim" ${macports::portdbpath}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set distfiles_path [makeDirectory "distfiles" ${macports::portdbpath}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set turdfile [makeFile "should be kept" ".turd_MacPorts" ${distfiles_path}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set testfile [makeFile "should be deleted" "test.txt" ${distfiles_path}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # mock UI questions mechanism
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    proc returnD {args} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return "d"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set saved_questions_alternative {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[info exists macports::ui_options(questions_alternative)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set saved_questions_alternative ${macports::ui_options(questions_alternative)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set macports::ui_options(questions_alternative) "returnD"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set cleanup_testdir {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set macports::portdbpath ${saved_portdbpath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {$saved_questions_alternative ne {}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set macports::ui_options(questions_alternative) $saved_questions_alternative
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> test remove_distfiles {
     Test for distfiles being successfully removed.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-} -constraints {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    root
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    userInteraction
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} -body {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set path [file join ${macports::portdbpath} distfiles]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set file [file join $path "test.txt"]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set fd   [open $file w]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    close $fd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -setup $setup_testdir -body {
</span>     reclaim::remove_distfiles
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [file exists $testfile]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -result 0 -cleanup $cleanup_testdir
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[file exists $file]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return "FAIL: Did not remove distfile."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    return "Successfully removed distfile."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} -cleanup {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    file delete -force $file
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} -result "Successfully removed distfile."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test remove_distfiles_keeps_turd_file {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Test for .turd_MacPorts files being kept by distfile removal.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -setup $setup_testdir -body {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reclaim::remove_distfiles
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [file exists $turdfile]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -result 1 -cleanup $cleanup_testdir
</span> 
 test update_last_run {
     Tests for last_reclaim file being updated.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-} -constraints {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    root
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} -body {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set path     [file join ${macports::portdbpath} last_reclaim]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set fd          [open $path w]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    close $fd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set fd          [open $path r]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set old_time    [gets $fd]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    close $fd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -setup $setup_testdir -body {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    proc _get_last_reclaim_time {fname} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set fd [open $fname r]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set timestamp [gets $fd]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        close $fd
</span> 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        return $timestamp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set old_time [_get_last_reclaim_time $lastreclaimfile]
</span>     reclaim::update_last_run
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set fd          [open $path r]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set new_time    [gets $fd]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    close $fd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set new_time [_get_last_reclaim_time $lastreclaimfile]
</span> 
     if {$new_time == $old_time} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        return "FAIL: Did not update to the current time."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return "$new_time == $old_time"
</span>     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    return "Successfully updated to the correct time."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} -cleanup {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set fd  [open $path w]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    puts $fd $old_time
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    close $fd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} -result "Successfully updated to the correct time."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return "pass"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -result "pass" -cleanup $cleanup_testdir
</span> 
 
 test walk_files {
     Tests if walking through the files, and deleting distfiles, ignoring normal files, and removing directory trees works.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-} -constraints {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    root
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -setup {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set dir [makeDirectory "reclaim_test_walk_files_tmpdir"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set subdir [makeDirectory "subdir" $dir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set bad_dist [list \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        [makeFile "to be deleted" "bad_distfile.txt" $subdir] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        [makeFile "to be deleted" "bad_distfile2.txt" $dir]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set good_dist [list \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        [makeFile "to be kept" "good_distfile.txt" $dir]]
</span> } -body {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set path        [file join ${macports::portdbpath} distfiles]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set dir         [file join $path tmp_dir]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set subdir      [file join $dir other_tmp_dir]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set bad_dist    [file join $subdir bad_distfile.txt]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set bad_dist2   [file join $dir bad_distfile2.txt]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set good_dist   [file join $dir good_distfile.txt]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set dist_list   [list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set errors [list]
</span>     set unused_list [list]
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    reclaim::walk_files $dir $good_dist unused_list 
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    lappend dist_list $good_dist
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    file mkdir $subdir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set $fd         [open $bad_dist w] 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    close $fd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set $fd         [open $bad_dist2 w] 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    close $fd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set $fd         [open $good_dist w] 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    close $fd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    reclaim::walk_files $dir $dist_list unused_list 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[lsearch -exact $unused_list $bad_dist] == -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return "FAIL: bad_dist should be deleted"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[lsearch -exact $unused_list $bad_dist2] == -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return "FAIL: bad_dist2 should be deleted"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[lsearch -exact $unused_list $good_dist] != -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return "FAIL: good_dist should NOT be deleted"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach badfile $bad_dist {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[lsearch -exact $unused_list $badfile] == -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lappend error "$badfile should be deleted"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[lsearch -exact $unused_list $dir] != -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return "FAIL: good_dist should NOT be deleted"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach goodfile [concat $good_dist [list $dir]] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[lsearch -exact $unused_list $goodfile] != -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lappend error "$goodfile should be kept"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    return "Successfully deleted all files that needed to be deleted."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} -cleanup {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    file delete -force $dir  
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} -result "Successfully deleted all files that needed to be deleted."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return $errors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -result {}
</span> 
 cleanupTests
</pre><pre style='margin:0'>

</pre>