<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Code paths, most likely. Print the value of code:get_path() just
before the error and see if it contains "/path/to/childe/ebin".</p>
<p>IIRC, it is _not_ enough for the code path to contain "./ebin",
even if this would point to the correct directory. The name of the
application must be literally present in the directory name in the
code path in order for code:priv_dir to find the application.</p>
<p>Regards,<br>
Magnus<br>
</p>
<div class="moz-cite-prefix">On 20/02/2019 10:59, Hugo Mills wrote:<br>
</div>
<blockquote type="cite"
cite="mid:20190220105932.GE317@carfax.org.uk">
<pre class="moz-quote-pre" wrap=""> Ping? Anyone got any ideas at all how to go about diagnosing this?
Hugo.
On Sun, Feb 17, 2019 at 06:47:56PM +0000, Hugo Mills wrote:
</pre>
<blockquote type="cite">
<pre class="moz-quote-pre" wrap=""> I've been trying to set up a basic CI system for a few projects.
The problem is, I'm consistently getting test failures when running
tests through the CI, where those tests pass perfectly well on a
manual run.
The test failure is:
=== Ended at 2019-02-17 15:36:20
=== Location: [{filename,join,446},
{stdlib_SUITE,run_suite,37},
{test_server,ts_tc,1545},
{test_server,run_test_case_eval1,1063},
{test_server,run_test_case_eval,995}]
=== Reason: no function clause matching
filename:join({error,bad_name},"stdlib") (filename.erl, line 446)
in function stdlib_SUITE:run_suite/3 (test/stdlib_SUITE.erl, line 37)
in call from test_server:ts_tc/3 (test_server.erl, line 1545)
in call from test_server:run_test_case_eval1/6 (test_server.erl, line 1063)
in call from test_server:run_test_case_eval/9 (test_server.erl, line 995)
which comes from this line of code in my CT text fixture:
BaseContext =
#{"$module_path"
=> [filename:join(code:priv_dir(childe), "stdlib")],
"$data_path"
=> [?config(data_dir, Conf)]},
I can run this on my main dev machines ("make ct" -- I'm using
erlang.mk) quite happily, and it passes the test. I can run it
manually on the CI worker machine and it passes the test. If I run it
through a CI system, it fails with the above error.
There's clearly _something_ odd about the environment that the CI
system is running in, but I'm damned if I can tell what it is. It's
not specific to the CI system, either: I've seen this with Buildbot,
yesterday, and now GoCD today.
Why would code:priv_dir/1 be failing in the CI when it's working in
an interactive shell?
My dev machines are running 21.2.2 from Debian; the CI is running
21.2.5 from Erlang Solutions, but that's not the issue, because I can
do a manual run on the CI box, and it works.
Thanks for any ideas,
Hugo.
</pre>
</blockquote>
<pre class="moz-quote-pre" wrap="">
</pre>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
</blockquote>
</body>
</html>