Dan wrote:
> On Jun 4, 2008, at 2:23 PM, kgs wrote:
>
>   
>> kgs wrote:
>>     
>>> kgs wrote:
>>>
>>>       
>>>> kgs wrote:
>>>>
>>>>
>>>>         
>>>>> Hi all,
>>>>> I've compiled sqlite3 for arm-linux(armv5t) as well as the tcl  
>>>>> environment.
>>>>> sqlite3 3.5.9
>>>>> tcl 8.4
>>>>>
>>>>> I've run testfixture all.test on the hardware it's compiled for.
>>>>> Everything runs great until we come to the crash4-1.1.1 up to
>>>>> crash4-1.1000.1.
>>>>> the messages are :
>>>>> Expected: [1 {child process exited abnormally}]
>>>>>      Got: [1 {couldn't create error file for command: no such  
>>>>> file or
>>>>> directory}]
>>>>>
>>>>> for each crash4-1.x.1, then :
>>>>> *** Giving up...
>>>>> 1000 errors out of 26715 tests
>>>>>
>>>>> the crash4-1.x.2 and crash4-1.x.3 return Ok.
>>>>>
>>>>> Any ideas as to what may be wrong ?
>>>>>
>>>>> Thanks in advance
>>>>> _______________________________________________
>>>>> sqlite-users mailing list
>>>>> sqlite-users@sqlite.org
>>>>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>>>>
>>>>>
>>>>>
>>>>>           
>>>> So this is apparently what is happening...
>>>> this code in tester.tcl :
>>>> set r [catch {
>>>>     exec [info nameofexec] crash.tcl >@stdout
>>>>   } msg]
>>>>
>>>> is returning :
>>>> 1 {couldn't create error file for command: no such file or  
>>>> directory}
>>>>
>>>> so i think that >@stdout is trying to treat stdout as an open  
>>>> file...
>>>> but it doesn't exist.
>>>>
>>>> I'm guessing that stdout is supposed to be a fixed thing in  
>>>> tcl... and
>>>> that this is supposed to take the output from the exec and pipe  
>>>> it to
>>>> stdout.
>>>>
>>>> So... if this is how its supposed to work, then why isn't it ?
>>>>
>>>>
>>>> _______________________________________________
>>>> sqlite-users mailing list
>>>> sqlite-users@sqlite.org
>>>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>>>
>>>>
>>>>         
>>> Never mind that last message, >@stdout puts the error message i'm
>>> getting in "msg" through the catch.
>>> So that leaves, that the testfixture command is not being found.  I
>>> checked what "info nameofexec" is returning, and it returns the full
>>> path and name of testfixture.
>>> When I run "testfixture crash.tcl", I get no error...  I am confused.
>>>
>>> Forgive my babbling, this is my first day with tcl.
>>> _______________________________________________
>>> sqlite-users mailing list
>>> sqlite-users@sqlite.org
>>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>>
>>>       
>> Ok, so now I think I know what really going on... from
>> http://www.tcl.tk/faq/tclwin.htm
>> B-14: exec: couldn't create error file for command: Error 0
>>  If exec returns an error message of "couldn't create error file for
>> command: Error 0", the following may help:
>>  This problem exists under Unix and Windows NT. I have conclusive  
>> proof
>> that under Unix it was being caused by the temporary directory not  
>> being
>> world writable, which explains why superusers were able to "exec"
>> something but not a regular user. The "gotcha!" is that /tmp is not
>> necessarily the temporary directory that is used, so people were not
>> seeing an obvious problem. Tcl uses the tmpnam() system call, which on
>> many systems actually uses /var/tmp, and on some systems that  
>> directory
>> was not world writable. I would like to call this a problem with one's
>> site administration.
>>
>> Since root access to the hardware I'm using is not attainable, how  
>> do I
>> work around this ? Any ideas ?
>> Any help would be greatly appreciated.
>>     
>
> Maybe you could get around the problem by setting the TMPDIR environment
> variable to the path of a writable directory (see [man tmpnam]). Failing
> that, maybe somebody on comp.lang.tcl will know.
>
> Dan.
>
>
>
>
>   
>> _______________________________________________
>> sqlite-users mailing list
>> sqlite-users@sqlite.org
>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>     
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>   
Ok, i tried setting TMP,TEMP,TMPDIR,TEMPDIR to a path that was 
writable... no go :(

What I have done now is change

exec [info nameofexec] crash.tcl >@stdout

to 

exec [info nameofexec] crash.tcl >&@stdout

This routes the error output to stdout and no longer requires writing to a tmp 
dir.

It's a hack, I know, but I figure as long as the exec command gets no errors, 
it should go...

@Dan Thanks for the suggestion.



_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to