<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>