[cffi-devel] [cl-test-grid] Re: how to treat expected failures in tests

Anton Vodonosov avodonosov at yandex.ru
Wed Mar 14 00:15:09 UTC 2012



14.03.2012, 04:01, "Luís Oliveira" <luismbo at gmail.com>:
>>  Lisp compilation failures are present in logs, but in this case we have C library compilation
>>  error. This may be seen by component description in the ASDF error message:
>>  #<C-TEST-LIB "cffi-tests" "tests" "libtest">
>
> Ah, my bad. While I'm making feature requests, perhaps a backtrace
> would be useful, though? :-)

They would of course.. but there is no portable way to retrieve a backtrace of CL condition.

>
>>  In cffi-tests.asd the
>>
>>  (defmethod perform ((o compile-op) (c c-test-lib))
>>
>>  does not try to run "make" on windows,
>>
>>   #-windows
>>   (unless (zerop (run-shell-command
>>                   "cd ~A; make"
>>
>>  and on windows the only error signaled in absense of the native library is
>>  cffi:load-foreign-library-error. I rely on it when detecting :no-resource.
>
> Should we assume that 'make' is available on windows? Is that a common
> setup for cygwin/mingw? What about other toolsets such as Microsoft's?
> Do they ship with make?

Gnu make is often installed with cygwin (but not so many people install cygwin).
Microsoft Visual Studio ships with a program called nmake - mostly compatible
with make, but not completely. Again, not everyone have Visual Studio. Actually,
make is not that necessary, it's just one C file we need to compile, the compile.bat
from the tests directory is OK (but anyway requires Microsoft Visual C compiler). 

In short, even if we implement the compile-op for windows, it is going to fail for 85% of users.

I think it's OK to ask user to compile the library manually.

What I need to fix, is to more correctly recognize the cases when tests are impossible
to run. Probably some improvements in the compile-op implementation will help here,
but I don't know yet what it would be.

BTW, to be clear, the failure on ABCL represented in the logs as
    
    Class not found: com.sun.jna.Native

is also :no-resouce - CFFI on  ABCL requires jna.jar to present in classpaths, 
which I don't have. 

I have a TODO item recognize this situation as :no-resource, too.




More information about the cffi-devel mailing list