From c09312d88164458f17cd44cc40602fa6f342cff2 Mon Sep 17 00:00:00 2001 From: John Benediktsson <mrjbq7@gmail.com> Date: Thu, 31 Mar 2016 21:31:44 -0700 Subject: [PATCH] io.files.unix: more test cleanup. --- basis/io/files/unix/unix-tests.factor | 229 +++++++++++++++----------- 1 file changed, 130 insertions(+), 99 deletions(-) diff --git a/basis/io/files/unix/unix-tests.factor b/basis/io/files/unix/unix-tests.factor index d816561dec..870c0c971c 100644 --- a/basis/io/files/unix/unix-tests.factor +++ b/basis/io/files/unix/unix-tests.factor @@ -1,8 +1,8 @@ -USING: accessors arrays calendar continuations grouping io.directories -io.files.info io.files.info.unix io.files.temp io.files.unix -io.pathnames kernel literals math math.bitwise math.functions -sequences strings system tools.test unix unix.groups unix.users ; -IN: io.files.unix.tests +USING: accessors arrays calendar grouping io.files.info +io.files.info.unix io.files.temp io.files.unique io.files.unix +io.pathnames kernel literals locals math math.bitwise +math.functions sequences strings system tools.test unix +unix.groups unix.users ; { "/usr/libexec/" } [ "/usr/libexec/awk/" parent-directory ] unit-test { "/etc/" } [ "/etc/passwd" parent-directory ] unit-test @@ -31,111 +31,142 @@ IN: io.files.unix.tests { "/lib/bux/" } [ "/usr" "/lib/bux/" append-path ] unit-test { t } [ "/foo" absolute-path? ] unit-test -: test-file ( -- path ) - "permissions" temp-file ; - -: prepare-test-file ( -- ) - [ test-file delete-file ] ignore-errors - test-file touch-file ; - -: perms ( -- n ) - test-file file-permissions 0o7777 mask ; - -prepare-test-file - -{ t } -[ test-file flags{ USER-ALL GROUP-ALL OTHER-ALL } set-file-permissions perms 0o777 = ] unit-test - -{ t } [ test-file user-read? ] unit-test -{ t } [ test-file user-write? ] unit-test -{ t } [ test-file user-execute? ] unit-test -{ t } [ test-file group-read? ] unit-test -{ t } [ test-file group-write? ] unit-test -{ t } [ test-file group-execute? ] unit-test -{ t } [ test-file other-read? ] unit-test -{ t } [ test-file other-write? ] unit-test -{ t } [ test-file other-execute? ] unit-test - -{ t } [ test-file f set-other-execute perms 0o776 = ] unit-test -{ f } [ test-file file-info other-execute? ] unit-test - -{ t } [ test-file f set-other-write perms 0o774 = ] unit-test -{ f } [ test-file file-info other-write? ] unit-test - -{ t } [ test-file f set-other-read perms 0o770 = ] unit-test -{ f } [ test-file file-info other-read? ] unit-test - -{ t } [ test-file f set-group-execute perms 0o760 = ] unit-test -{ f } [ test-file file-info group-execute? ] unit-test - -{ t } [ test-file f set-group-write perms 0o740 = ] unit-test -{ f } [ test-file file-info group-write? ] unit-test - -{ t } [ test-file f set-group-read perms 0o700 = ] unit-test -{ f } [ test-file file-info group-read? ] unit-test - -{ t } [ test-file f set-user-execute perms 0o600 = ] unit-test -{ f } [ test-file file-info other-execute? ] unit-test - -{ t } [ test-file f set-user-write perms 0o400 = ] unit-test -{ f } [ test-file file-info other-write? ] unit-test - -{ t } [ test-file f set-user-read perms 0o000 = ] unit-test -{ f } [ test-file file-info other-read? ] unit-test - -{ t } -[ test-file flags{ USER-ALL GROUP-ALL OTHER-EXECUTE } set-file-permissions perms 0o771 = ] unit-test - -prepare-test-file - -{ t } [ - test-file now - [ set-file-access-time ] 2keep - [ file-info accessed>> ] - [ [ [ truncate >integer ] change-second >gmt ] bi@ ] bi* = -] unit-test + "permissions-1" ".txt" [| path | -{ t } -[ - test-file now - [ set-file-modified-time ] 2keep - [ file-info modified>> ] - [ [ [ truncate >integer ] change-second >gmt ] bi@ ] bi* = -] unit-test + { 0o777 } [ + path flags{ USER-ALL GROUP-ALL OTHER-ALL } set-file-permissions + path file-permissions 0o7777 mask + ] unit-test -{ t } -[ - test-file now [ dup 2array set-file-times ] 2keep - [ file-info [ modified>> ] [ accessed>> ] bi ] dip - 3array - [ [ truncate >integer ] change-second >gmt ] map all-equal? -] unit-test + { t } [ path user-read? ] unit-test + { t } [ path user-write? ] unit-test + { t } [ path user-execute? ] unit-test + { t } [ path group-read? ] unit-test + { t } [ path group-write? ] unit-test + { t } [ path group-execute? ] unit-test + { t } [ path other-read? ] unit-test + { t } [ path other-write? ] unit-test + { t } [ path other-execute? ] unit-test -{ } [ test-file f now 2array set-file-times ] unit-test -{ } [ test-file now f 2array set-file-times ] unit-test -{ } [ test-file f f 2array set-file-times ] unit-test + { 0o776 } [ + path f set-other-execute + path file-permissions 0o7777 mask + ] unit-test + + { f } [ path file-info other-execute? ] unit-test + + { 0o774 } [ + path f set-other-write + path file-permissions 0o7777 mask + ] unit-test + + { f } [ path file-info other-write? ] unit-test + + { 0o770 } [ + path f set-other-read + path file-permissions 0o7777 mask + ] unit-test + + { f } [ path file-info other-read? ] unit-test + + { 0o760 } [ + path f set-group-execute + path file-permissions 0o7777 mask + ] unit-test + + { f } [ path file-info group-execute? ] unit-test + + { 0o740 } [ + path f set-group-write + path file-permissions 0o7777 mask + ] unit-test + + { f } [ path file-info group-write? ] unit-test + + { 0o700 } [ + path f set-group-read + path file-permissions 0o7777 mask + ] unit-test + + { f } [ path file-info group-read? ] unit-test + + { 0o600 } [ + path f set-user-execute + path file-permissions 0o7777 mask + ] unit-test + + { f } [ path file-info other-execute? ] unit-test + + { 0o400 } [ + path f set-user-write + path file-permissions 0o7777 mask + ] unit-test + + { f } [ path file-info other-write? ] unit-test + + { 0o000 } [ + path f set-user-read + path file-permissions 0o7777 mask + ] unit-test + + { f } [ path file-info other-read? ] unit-test + + { 0o771 } [ + path flags{ USER-ALL GROUP-ALL OTHER-EXECUTE } set-file-permissions + path file-permissions 0o7777 mask + ] unit-test + + ] cleanup-unique-file + + "permissions-2" ".txt" [| path | + + { t } [ + path now + [ set-file-access-time ] 2keep + [ file-info accessed>> ] + [ [ [ truncate >integer ] change-second >gmt ] bi@ ] bi* = + ] unit-test + + { t } + [ + path now + [ set-file-modified-time ] 2keep + [ file-info modified>> ] + [ [ [ truncate >integer ] change-second >gmt ] bi@ ] bi* = + ] unit-test + + { t } + [ + path now [ dup 2array set-file-times ] 2keep + [ file-info [ modified>> ] [ accessed>> ] bi ] dip + 3array + [ [ truncate >integer ] change-second >gmt ] map all-equal? + ] unit-test + + { } [ path f now 2array set-file-times ] unit-test + { } [ path now f 2array set-file-times ] unit-test + { } [ path f f 2array set-file-times ] unit-test -{ } [ test-file real-user-name set-file-user ] unit-test -{ } [ test-file real-user-id set-file-user ] unit-test -{ } [ test-file real-group-name set-file-group ] unit-test -{ } [ test-file real-group-id set-file-group ] unit-test + { } [ path real-user-name set-file-user ] unit-test + { } [ path real-user-id set-file-user ] unit-test + { } [ path real-group-name set-file-group ] unit-test + { } [ path real-group-id set-file-group ] unit-test -{ t } [ test-file file-user-name real-user-name = ] unit-test -{ t } [ test-file file-group-name real-group-name = ] unit-test + { t } [ path file-user-name real-user-name = ] unit-test + { t } [ path file-group-name real-group-name = ] unit-test -{ } -[ test-file real-user-id real-group-id set-file-ids ] unit-test + { } [ path real-user-id real-group-id set-file-ids ] unit-test -{ } -[ test-file f real-group-id set-file-ids ] unit-test + { } [ path f real-group-id set-file-ids ] unit-test -{ } -[ test-file real-user-id f set-file-ids ] unit-test + { } [ path real-user-id f set-file-ids ] unit-test -{ } -[ test-file f f set-file-ids ] unit-test + { } [ path f f set-file-ids ] unit-test + + ] cleanup-unique-file +] with-temp-directory { t } [ 0o4000 uid? ] unit-test { t } [ 0o2000 gid? ] unit-test