Ticket UUID: | 7c571871efb77076c15cffb4194916e4e3714752 | |||
Title: | winDialog tests failures | |||
Type: | Bug | Version: | core-8-6-branch | |
Submitter: | fvogel | Created on: | 2017-01-09 14:31:53 | |
Subsystem: | 86. Test Tools | Assigned To: | fvogel | |
Priority: | 5 Medium | Severity: | Minor | |
Status: | Closed | Last Modified: | 2018-05-29 20:00:29 | |
Resolution: | Fixed | Closed By: | fvogel | |
Closed on: | 2018-05-29 20:00:29 | |||
Description: |
(text/x-fossil-wiki)
winDialog tests failures obtained on Windows 7, under an account that is not an administrator of the machine (just a normal user): winDialog-5.7.6 fails because an error message is displayed in a dialog. Approximate translation of the message originally in French: <verbatim> bar You do not have the rights to open the file. </verbatim> Then the user has to click OK in that dialog, then Cancel in the "Save" dialog, the latter action producing a wrong obtained result in the winDialog-5.7.6 test. winDialog-5.7.7 and winDialog-5.7.8 fail because of permission denied. No user action here however. winDialog-5.12.2 produces an error dialog: <verbatim> user "fvogel" doesn't exist while executing "file normalize [file join ~$::tcl_platform(user) "5 12 2"]" (file "D:/tcltk-fossil/tk/tests/winDialog.test" line 521) ...<rest snipped>... </verbatim> and the test suite brutally exits without running what comes after winDialog-5.12.2 Detailed log of the failures output: <verbatim> ==== winDialog-5.7.6 GetFileName: All/extension FAILED ==== Contents of test case: # In 8.6.4 this combination resulted in bar.ext.ext which is bad start {set x [tk_getSaveFile -filetypes {{All *}} -defaultextension {ext} -title Save]} set msg {} then { if {[catch {SetText [vista? 0x47C 0x3e9] bar} msg]} { Click cancel } else { Click ok } } set x "[file tail $x]$msg" ---- Result was: ---- Result should have been (exact matching): bar.ext ==== winDialog-5.7.6 FAILED ==== winDialog-5.7.7 tk_getOpenFile: -defaultextension FAILED ==== Contents of test case: unset -nocomplain x tcltest::makeFile "" "5 7 7.ext" [initialdir] start {set x [tk_getOpenFile -defaultextension ext -initialdir [file nativename [initialdir]] -initialfile "5 7 7" -title Foo]} then { Click ok } return $x ---- Test generated error; Return code was: 1 ---- Return code should have been one of: 0 2 ---- errorInfo: couldn't open "D:/tcltk-fossil/tk/win/5 7 7.ext": permission denied while executing "open $fullName w" (procedure "tcltest::makeFile" line 13) invoked from within "tcltest::makeFile "" "5 7 7.ext" [initialdir]" ("uplevel" body line 3) invoked from within "uplevel 1 $script" ---- errorCode: POSIX EACCES {permission denied} ==== winDialog-5.7.7 FAILED ==== winDialog-5.7.8 tk_getOpenFile: -defaultextension FAILED ==== Contents of test case: unset -nocomplain x tcltest::makeFile "" "5 7 8.ext" [initialdir] start {set x [tk_getOpenFile -defaultextension ext -initialdir [file nativename [initialdir]] -initialfile "5 7 8.ext" -title Foo]} then { Click ok } return $x ---- Test generated error; Return code was: 1 ---- Return code should have been one of: 0 2 ---- errorInfo: couldn't open "D:/tcltk-fossil/tk/win/5 7 8.ext": permission denied while executing "open $fullName w" (procedure "tcltest::makeFile" line 13) invoked from within "tcltest::makeFile "" "5 7 8.ext" [initialdir]" ("uplevel" body line 3) invoked from within "uplevel 1 $script" ---- errorCode: POSIX EACCES {permission denied} ==== winDialog-5.7.8 FAILED </verbatim> | |||
User Comments: |
fvogel added on 2018-05-29 20:00:29:
Fixed in Tcl core-8-6-branch, core-8-branch and trunk. fvogel added on 2018-05-15 14:06:36: (text/x-fossil-wiki) This issue really is [https://core.tcl.tk/tcl/tktview/9e6b569963ea497e9e623a79d5a5f92c5681bfdb|a Tcl issue]. Follow-up there. bll added on 2018-05-15 13:23:17: Just reading the code [ tclWinFile.c / TclpGetUserHome() ] If the user name is the form name@domain and the NetGetDCName() call fails, then the result is null. Or if NetUserGetInfo() fails. I suppose some debug will need to be added to see exactly where the error occurs and what the error is. fvogel added on 2018-05-15 07:27:20: When I run tclsh86tg.exe as an admin (right click, run as Administrator, enter login+password of the local admin of the computer), then I get no error and the answer of file normalize ~$::tcl_platform(user) is the right one: C:/Users/l-vogel bll added on 2018-05-14 18:24:32: Admin account: E:\>c:windows\64\tcl\bin\tclsh.exe % file normalize ~$::tcl_platform(user) C:/Users/bll % exit Standard user: C:\Users\std>.\Desktop\BallroomDJ\windows\64\tcl\bin\tclsh.exe % file normalize ~$::tcl_platform(user) C:/Users/std % file join ~$::tcl_platform(user) 5 12 2 ~std/5/12/2 % file normalize [file join ~$::tcl_platform(user) 5 12 2] C:/Users/std/5/12/2 % Also on Windows 7. I wonder what is different. Locale? fvogel added on 2018-05-14 17:00:33: (text/x-fossil-wiki) Today, same Win7 machine, same user account, in the bleeding edge of Tcl and Tk core-8-6-branch: - 5.7.6, 5.7.7, 5.7.8, and 5.12.7 do pass - the only remaining issue in winDialog.test is that winDialog-5.12.2 produces an error dialog: <verbatim> user "fvogel" doesn't exist while executing "file normalize [file join ~$::tcl_platform(user) "5 12 2"]" (file "D:/tcltk-fossil/tk/tests/winDialog.test" line 521) ...<rest snipped>... </verbatim> and the test suite brutally exits without running what comes after winDialog-5.12.2 Indeed, in tclsh: <verbatim> % file normalize ~$::tcl_platform(user) user "fvogel" doesn't exist % </verbatim> Did this ever work? fvogel added on 2017-01-09 14:48:02: On the same machine, running the winDialog test suite from an admin account this time: 5.7.6, 5.7.7 and 5.7.8 : same behaviour 5.12.2 now passes and does not longer cause the test suite to exit New failure: 5.12.7, because return value of the test was 1 (expected 0 or 2), due to errorCode: TCL OPERATION GLOB NOMATCH |