<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>I was running into a similar, perhaps the same, problem. Below are two forwarded messages from Eli that might be useful. The second was not posted to the mailing list, but it may help you tell the sandbox evaluator to permit writing to a temp file in whatever directory is causing you problems.</div><div>--- nadeem</div><div><br><div>Begin forwarded message:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Helvetica" size="3" color="#000000" style="font: normal normal normal 12px/normal Helvetica; color: rgb(0, 0, 0); "><b>From:&nbsp;</b></font><font face="Helvetica" size="3" style="font: normal normal normal 12px/normal Helvetica; ">Eli Barzilay &lt;<a href="mailto:eli@barzilay.org">eli@barzilay.org</a>&gt;</font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Helvetica" size="3" color="#000000" style="font: normal normal normal 12px/normal Helvetica; color: rgb(0, 0, 0); "><b>Date:&nbsp;</b></font><font face="Helvetica" size="3" style="font: normal normal normal 12px/normal Helvetica; ">December 6, 2009 4:05:13 PM EST</font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Helvetica" size="3" color="#000000" style="font: normal normal normal 12px/normal Helvetica; color: rgb(0, 0, 0); "><b>To:&nbsp;</b></font><font face="Helvetica" size="3" style="font: normal normal normal 12px/normal Helvetica; ">Nadeem Abdul Hamid &lt;<a href="mailto:nadeem@acm.org">nadeem@acm.org</a>&gt;</font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Helvetica" size="3" color="#000000" style="font: normal normal normal 12px/normal Helvetica; color: rgb(0, 0, 0); "><b>Cc:&nbsp;</b></font><font face="Helvetica" size="3" style="font: normal normal normal 12px/normal Helvetica; ">plt edu &lt;<a href="mailto:plt-edu@list.cs.brown.edu">plt-edu@list.cs.brown.edu</a>&gt;</font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Helvetica" size="3" color="#000000" style="font: normal normal normal 12px/normal Helvetica; color: rgb(0, 0, 0); "><b>Subject:&nbsp;</b></font><font face="Helvetica" size="3" style="font: normal normal normal 12px/normal Helvetica; "><b>Re: [plt-edu] Gaining access to a student's source code from a test<span class="Apple-tab-span" style="white-space: pre; ">        </span>harness.</b></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div></div><div>On Dec &nbsp;6, Nadeem Abdul Hamid wrote:<br><blockquote type="cite">Why I try this:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">On Dec 6, 2009, at 3:30 PM, Eli Barzilay wrote:<br></blockquote><blockquote type="cite"><blockquote type="cite">Now you can do this:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">(require scheme/sandbox)<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">(define e (make-module-evaluator (string-&gt;path "some-file.ss")))<br></blockquote></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">I get an error:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">open-output-file: `write' access denied for /var/folders/so/&nbsp;<br></blockquote><blockquote type="cite">sodQxXkWEL8lYu1Sd7M+N++++TI/-Tmp-/mztmp1260131680-441220566<br></blockquote><br>Looks like the sandboxed code is using planet, which is trying to<br>install a library. &nbsp;Code that runs in a sandbox is heavily<br>restricted[*], and that's what leads to that error. &nbsp;Recent versions<br>(4.2.3, and I think that 4.2.2 also) would allow reading planet<br>libraries, but still not allow writing -- you should make sure that<br>these libraries are installed before running a sandbox.<br><br>Alternatively, if you trust the students to not try to hack your<br>machine, you can start the sandbox in "trusted" mode:<br><br>&nbsp;(define e<br>&nbsp;&nbsp;&nbsp;(call-with-trusted-sandbox-configuration<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(lambda () (make-module-evaluator ...same...))))<br><br>This removes all of the restrictions -- inlcluding timeouts and memory<br>limits.<br><br><br>[*] It is not allowed to write anywhere, and it is only allowed to<br>read from specific places like the PLT tree. &nbsp;This way you're<br>protected against malicious student code that will try, for example,<br>to send an email with your /etc/passwords file.<br><br>--&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((lambda (x) (x x)) (lambda (x) (x x))) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Eli Barzilay:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://barzilay.org/">http://barzilay.org/</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maze is Life!<br></div></blockquote><div><br></div><br><div>Begin forwarded message:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Helvetica" size="3" color="#000000" style="font: normal normal normal 12px/normal Helvetica; color: rgb(0, 0, 0); "><b>From:&nbsp;</b></font><font face="Helvetica" size="3" style="font: normal normal normal 12px/normal Helvetica; ">Eli Barzilay &lt;<a href="mailto:eli@barzilay.org">eli@barzilay.org</a>&gt;</font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Helvetica" size="3" color="#000000" style="font: normal normal normal 12px/normal Helvetica; color: rgb(0, 0, 0); "><b>Date:&nbsp;</b></font><font face="Helvetica" size="3" style="font: normal normal normal 12px/normal Helvetica; ">December 6, 2009 10:06:23 PM EST</font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Helvetica" size="3" color="#000000" style="font: normal normal normal 12px/normal Helvetica; color: rgb(0, 0, 0); "><b>To:&nbsp;</b></font><font face="Helvetica" size="3" style="font: normal normal normal 12px/normal Helvetica; ">Nadeem Abdul Hamid &lt;<a href="mailto:nadeem@acm.org">nadeem@acm.org</a>&gt;</font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Helvetica" size="3" color="#000000" style="font: normal normal normal 12px/normal Helvetica; color: rgb(0, 0, 0); "><b>Subject:&nbsp;</b></font><font face="Helvetica" size="3" style="font: normal normal normal 12px/normal Helvetica; "><b>Re: [plt-edu] Gaining access to a student's source code from a test&nbsp;&nbsp;harness.</b></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div></div><div>On Dec &nbsp;6, Nadeem Abdul Hamid wrote:<br><blockquote type="cite">I've attached some files to this email that cause the error: the<br></blockquote><blockquote type="cite">student file is "hw09-kiva.ss". It uses the "kiva-teachpack.ss" that<br></blockquote><blockquote type="cite">I wrote. The "some-file-tester.ss" contains the sandbox<br></blockquote><blockquote type="cite">evaluator. I'm running this on Windows now, DrScheme version<br></blockquote><blockquote type="cite">4.2.2.4-svn23oct2009, and I get the error:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">open-output-file: `write' access denied for<br></blockquote><blockquote type="cite">C:\DOCUME~1\Nadeem\LOCALS~1\Temp\mztmp1260145242-427658720<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Would it be the teachpack or something in it that causes the<br></blockquote><blockquote type="cite">problem? &nbsp;I don't seem to recall anything in it that is trying to<br></blockquote><blockquote type="cite">use planet?<br></blockquote><br>No, it's not planet... &nbsp;I've tracked this down to some paths that the<br>mred reader needs to access, and in addition include-bitmap (which is<br>used to have images inlined in the source) requires writing a<br>temporary file (which is the error you've seen). &nbsp;I was finally able<br>to make it work by permitting these paths manually:<br><br>&nbsp;(define e (parameterize ([sandbox-path-permissions<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'([read "/tmp/zzz"]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[read "/home/scheme/plt"]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[read "/home/eli/.plt-scheme/plt-prefs.ss"]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[write "/var/tmp"])])<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(make-module-evaluator (string-&gt;path "hw09-kiva.ss"))))<br><br>where "/tmp/zzz" is where I put all your files, "/home/scheme/plt" is<br>where the plt installation lives (which is needed because of that<br>problem), the prefs file is readable because something was accessing<br>it too, and "/var/tmp" is where it was saving the temp files on my<br>machine (needed for including bitmaps).<br><br><br>--&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((lambda (x) (x x)) (lambda (x) (x x))) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Eli Barzilay:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://barzilay.org/">http://barzilay.org/</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maze is Life!<br></div></blockquote><div><br></div></div><div><br></div><div><br></div><div><br></div><br><div><div>On Dec 15, 2009, at 10:43 PM, Jordan Johnson wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Hi all,<br><br>Newbie question: &nbsp;I have multiple suites of tests (check-expects culled from multiple files) that I want to run against multiple student homework handins.<br><br>This is essentially the code I'm working from in the tests file:<br><br>;;;;;<br>#lang scheme<br><br>(require htdp/testing scheme/sandbox)<br><br>(define e (make-module-evaluator &lt;path-to-test-subject-file&gt;))<br><br>(e '(begin<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...first sequence of check-expects...<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(test)))<br><br>(e '(begin<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...second sequence of check-expects...<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(test)))<br><br>;; etc.<br><br>However, I'm getting errors that tell me DrScheme is trying to create a temp file in the directory of the subject file, and failing because of sandbox restrictions.<br><br>Questions:<br> - Is the htdp/testing lib the one requiring the aforementioned temp file?<br> - Am I going off in the wrong direction trying to run check-expects this way?<br><br>and perhaps most importantly<br> - is there a better way I'm unaware of?<br><br>I'm sure this is merely a sign I'm missing something in the docs, so if anyone can point me in the right direction I'd be grateful.<br><br>Best,<br>Jordan<br><br>_________________________________________________<br> For list-related administrative tasks:<br> <a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br></div></blockquote></div><br></body></html>