Page MenuHome

[alembic] Unit tests are broken on windows.
Closed, ResolvedPublic

Description

There are a lot of factors here that lead to the tests failing..

  1. It can't find the blender executable

https://git.blender.org/gitweb/gitweb.cgi/blender.git/blob/HEAD:/tests/python/CMakeLists.txt#l465

this needs to be

--blender "$<TARGET_FILE:blender>"
  1. windows paths are annoying

https://git.blender.org/gitweb/gitweb.cgi/blender.git/blob/HEAD:/tests/python/alembic_tests.py#l219

The problem here is the filepath, windows path separators are back slashes so with the path "c:\users\someuser\appdata\local\temp\blah.abc" blender will try to unescape \u \s \a \l \t and \b which naturally ends in disaster. we either have to escape the path before stuffing it into the script or prefix the string with an r to get a literal string. (this applies to all filepath's I just linked the first one out of laziness)

  1. We build none of the alembic binary tools on windows.

This has never been a requirement, and I never received a request to include them in the svn libs. The test tries to execute abcls and fails miserably. I can update the buildscripts and add the binaries to svn if you want. Do you just want abcls or do you want the whole set ( abcdiff abcecho abcechobounds abcls abcstitcher abctree ) ?

  1. I have no idea.

I think they run now, but it's still pretty unhappy about the whole thing. I'll attach a log to this ticket

Event Timeline

Thanks for looking into this.

So far the tests only depend on abcls. I don't want to use Blender's Alembic importer to test the exporter, as that can hide bugs (in the past, off-by-one errors in the exporter were compensated for in the importer). Maybe some day we'll have proper Python bindings (see this discussion on the Alembic discussion list), or maybe we'll just have to write some CTypes wrappers for libAlembic. I'm sure it'll be a lot easier to manage & more stable than parsing the output of abcls (but maybe my feature request will help in that area too).

I resolved point 3 in svn, all flavors of the windows libs now have the binary tools, all others i'm gonna leave up to you , just poke me on irc if you need something tested

  1. That's easy to fix.
  2. Fortunately Windows also understands forward slashes. This means we can use path.as_posix() and avoid the backslashes of hell.

The tests failing could have something to do with the newline style on Windows.

I've put fixes for the above into the branch temp-sybren-abc-tests-windows, can you give that a try?

All tests pass in the temp branch! looks like those changes are good to go!

Sybren A. Stüvel (sybren) lowered the priority of this task from Needs Triage by Developer to Normal.Apr 28 2017, 3:23 PM