Skip to content

Commit 446d2e7

Browse files
authored
Merge pull request #1442 from ivanimanishi/testFixes
IECoreGL Test Fixes and updates to ie/options
2 parents 6ac8fc2 + 5c259f3 commit 446d2e7

File tree

8 files changed

+73
-66
lines changed

8 files changed

+73
-66
lines changed

Changes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@ Build
1515
- Added `PYBIND11_INCLUDE_PATH` option.
1616
- Added `VDB_PYTHON_PATH` to USD tests.
1717
- Added `INSTALL_CREATE_SYMLINKS`, which allows you to disable the creation of version symlinks at the end of the install.
18+
- Added `USG_SHIMLIB_PATH` which may be necessary to run nuke tests.
1819

1920
- CI :
2021
- IECoreHoudini tests updated to pass on newer environments.
22+
- IECoreGL tests updated with relaxed precisions for image comparisons.
2123

2224
10.5.10.0 (relative to 10.5.9.5)
2325
=========

SConstruct

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,13 @@ o.Add(
353353
"",
354354
)
355355

356+
o.Add(
357+
"USG_SHIMLIB_PATH",
358+
"The path to the FnUsdShim to use for Nuke. This may be necessary to run the tests.",
359+
"",
360+
)
361+
362+
356363
# OpenGL options
357364

358365
try :
@@ -2589,6 +2596,7 @@ nukeTestEnv["ENV"]["NUKE_PATH"] = "plugins/nuke"
25892596
nukeTestEnv["ENV"]["IECORE_OP_PATHS"] = "test/IECoreNuke/ops:test/IECore/ops"
25902597
# prepend OIIO LIB PATH to library path to support custom OIIO with specific dependencies
25912598
nukeTestEnv["ENV"][libraryPathEnvVar] = "{}:{}".format( nukeTestEnv.subst( "$OIIO_LIB_PATH" ), nukeTestEnv["ENV"][libraryPathEnvVar] )
2599+
nukeTestEnv["ENV"]["USG_SHIMLIB_PATH"] = nukeTestEnv["USG_SHIMLIB_PATH"]
25922600

25932601
if doConfigure :
25942602

config/ie/options

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -366,31 +366,18 @@ VDB_INCLUDE_PATH = os.path.join(
366366
VDB_LIB_PATH = os.path.join(
367367
"/software", "apps", "OpenVDB", vdbVersion, platform, compiler, compilerVersion, "lib"
368368
)
369-
if LooseVersion(vdbVersion) < LooseVersion("10") and targetApp:
370-
VDB_PYTHON_PATH = os.path.join(
371-
"/software",
372-
"apps",
373-
"OpenVDB",
374-
vdbVersion,
375-
platform,
376-
compiler,
377-
compilerVersion,
378-
"python",
379-
"lib",
380-
"python" + pythonVersion,
381-
)
382-
383-
else:
384-
VDB_PYTHON_PATH = os.path.join(
385-
"/software",
386-
"apps",
387-
"OpenVDB",
388-
vdbVersion,
389-
platform,
390-
compiler,
391-
compilerVersion,
392-
"python",
393-
)
369+
VDB_PYTHON_PATH = os.path.join(
370+
"/software",
371+
"apps",
372+
"OpenVDB",
373+
vdbVersion,
374+
platform,
375+
compiler,
376+
compilerVersion,
377+
"python",
378+
"lib",
379+
"python" + pythonVersion,
380+
)
394381

395382

396383
PYBIND11_INCLUDE_PATH = os.path.join(
@@ -513,6 +500,15 @@ if targetApp == "nuke":
513500
nukeReg = IEEnv.registry["apps"]["nuke"][nukeVersion][platform]
514501
NUKE_ROOT = nukeReg["location"]
515502
NUKE_LICENSE_FILE = nukeReg["wrapperEnvVars"]["foundry_LICENSE"]
503+
USG_SHIMLIB_PATH = os.path.join(
504+
"/software",
505+
"apps",
506+
"FnUsdShim",
507+
nukeReg["compatibilityVersion"],
508+
platform,
509+
compiler,
510+
compilerVersion,
511+
)
516512
INSTALL_NUKELIB_NAME = os.path.join(appPrefix, "lib", "$IECORE_NAME{}".format(ieCoreLibSuffix))
517513
INSTALL_NUKEPYTHON_DIR = os.path.join(appPrefix, "python")
518514
INSTALL_NUKEICON_DIR = os.path.join(appPrefix, "icons")

test/IECoreGL/Camera.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def testPositioning( self ) :
6464
i = IECore.Reader.create( os.path.join( os.path.dirname( __file__ ), "output", "testCamera.tif" ) ).read()
6565
dimensions = i.dataWindow.size() + imath.V2i( 1 )
6666
midpoint = dimensions.x * dimensions.y//2 + dimensions.x//2
67-
self.assertEqual( i["G"][midpoint], 0 )
67+
self.assertAlmostEqual( i["G"][midpoint], 0, 6 )
6868

6969
# render a plane at z = 0 with the camera moved back a touch to see it
7070
r = IECoreGL.Renderer()
@@ -87,7 +87,7 @@ def testPositioning( self ) :
8787
i = IECore.Reader.create( os.path.join( os.path.dirname( __file__ ), "output", "testCamera.tif" ) ).read()
8888
dimensions = i.dataWindow.size() + imath.V2i( 1 )
8989
midpoint = dimensions.x * dimensions.y//2 + dimensions.x//2
90-
self.assertEqual( i["A"][midpoint], 1 )
90+
self.assertAlmostEqual( i["A"][midpoint], 1, 6 )
9191

9292
def testXYOrientation( self ) :
9393

@@ -113,15 +113,15 @@ def testXYOrientation( self ) :
113113
i = IECore.Reader.create( os.path.join( os.path.dirname( __file__ ), "output", "testCamera.tif" ) ).read()
114114
dimensions = i.dataWindow.size() + imath.V2i( 1 )
115115
index = dimensions.x * dimensions.y//2 + dimensions.x - 1
116-
self.assertEqual( i["A"][index], 1 )
116+
self.assertAlmostEqual( i["A"][index], 1, 6 )
117117
self.assertAlmostEqual( i["R"][index], 1, 6 )
118-
self.assertEqual( i["G"][index], 0 )
119-
self.assertEqual( i["B"][index], 0 )
118+
self.assertAlmostEqual( i["G"][index], 0, 6 )
119+
self.assertAlmostEqual( i["B"][index], 0, 6 )
120120
index = dimensions.x//2
121-
self.assertEqual( i["A"][index], 1 )
122-
self.assertEqual( i["R"][index], 0 )
121+
self.assertAlmostEqual( i["A"][index], 1, 6 )
122+
self.assertAlmostEqual( i["R"][index], 0, 6 )
123123
self.assertAlmostEqual( i["G"][index], 1, 6 )
124-
self.assertEqual( i["B"][index], 0 )
124+
self.assertAlmostEqual( i["B"][index], 0, 6 )
125125

126126
def setUp( self ) :
127127

test/IECoreGL/ImmediateRenderer.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -76,20 +76,20 @@ def test( self ) :
7676
i = IECore.Reader.create( outputFileName ).read()
7777
dimensions = i.dataWindow.size() + imath.V2i( 1 )
7878
index = int(dimensions.x * 0.5)
79-
self.assertEqual( i["A"][index], 1 )
79+
self.assertAlmostEqual( i["A"][index], 1, 6 )
8080
self.assertAlmostEqual( i["R"][index], 1, 6 )
8181
self.assertAlmostEqual( i["G"][index], 1, 6 )
82-
self.assertEqual( i["B"][index], 0 )
82+
self.assertAlmostEqual( i["B"][index], 0, 6 )
8383
index = dimensions.x * int(dimensions.y * 0.5) + int(dimensions.x * 0.5)
84-
self.assertEqual( i["A"][index], 1 )
85-
self.assertEqual( i["R"][index], 0 )
86-
self.assertEqual( i["G"][index], 0 )
84+
self.assertAlmostEqual( i["A"][index], 1, 6 )
85+
self.assertAlmostEqual( i["R"][index], 0, 6 )
86+
self.assertAlmostEqual( i["G"][index], 0, 6 )
8787
self.assertAlmostEqual( i["B"][index], 1, 6 )
8888
index = 0
89-
self.assertEqual( i["A"][index], 0 )
90-
self.assertEqual( i["R"][index], 0 )
91-
self.assertEqual( i["G"][index], 0 )
92-
self.assertEqual( i["B"][index], 0 )
89+
self.assertAlmostEqual( i["A"][index], 0, 6 )
90+
self.assertAlmostEqual( i["R"][index], 0, 6 )
91+
self.assertAlmostEqual( i["G"][index], 0, 6 )
92+
self.assertAlmostEqual( i["B"][index], 0, 6 )
9393

9494
def setUp( self ) :
9595

test/IECoreGL/MeshPrimitiveTest.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -158,22 +158,22 @@ def testUniformCs( self ) :
158158
dimensions = image.dataWindow.size() + imath.V2i( 1 )
159159
index = dimensions.x * int(dimensions.y * 0.75) + int(dimensions.x * 0.25)
160160
self.assertAlmostEqual( image["R"][index], 1, 6 )
161-
self.assertEqual( image["G"][index], 0 )
162-
self.assertEqual( image["B"][index], 0 )
161+
self.assertAlmostEqual( image["G"][index], 0, 6 )
162+
self.assertAlmostEqual( image["B"][index], 0, 6 )
163163

164164
index = dimensions.x * int(dimensions.y * 0.75) + int(dimensions.x * 0.75)
165-
self.assertEqual( image["R"][index], 0 )
165+
self.assertAlmostEqual( image["R"][index], 0, 6 )
166166
self.assertAlmostEqual( image["G"][index], 1, 6 )
167-
self.assertEqual( image["B"][index], 0 )
167+
self.assertAlmostEqual( image["B"][index], 0, 6 )
168168

169169
index = dimensions.x * int(dimensions.y * 0.25) + int(dimensions.x * 0.75)
170170
self.assertAlmostEqual( image["R"][index], 1, 6 )
171171
self.assertAlmostEqual( image["G"][index], 1, 6 )
172172
self.assertAlmostEqual( image["B"][index], 1, 6 )
173173

174174
index = dimensions.x * int(dimensions.y * 0.25) + int(dimensions.x * 0.25)
175-
self.assertEqual( image["R"][index], 0 )
176-
self.assertEqual( image["G"][index], 0 )
175+
self.assertAlmostEqual( image["R"][index], 0, 6 )
176+
self.assertAlmostEqual( image["G"][index], 0, 6 )
177177
self.assertAlmostEqual( image["B"][index], 1, 6 )
178178

179179
def testBound( self ) :
@@ -192,10 +192,10 @@ def testFaceNormals( self ) :
192192
#include "IECoreGL/FragmentShader.h"
193193
IECOREGL_FRAGMENTSHADER_IN vec3 fragmentN;
194194
195-
void main()
196-
{
197-
gl_FragColor = vec4( fragmentN, 1.0 );
198-
}
195+
void main()
196+
{
197+
gl_FragColor = vec4( fragmentN, 1.0 );
198+
}
199199
"""
200200

201201
r = IECoreGL.Renderer()
@@ -224,8 +224,8 @@ def testFaceNormals( self ) :
224224
image = IECore.Reader.create( self.outputFileName ).read()
225225
dimensions = image.dataWindow.size() + imath.V2i( 1 )
226226
index = dimensions.x * dimensions.y//2 + dimensions.x//2
227-
self.assertEqual( image["R"][index], 0 )
228-
self.assertEqual( image["G"][index], 0 )
227+
self.assertAlmostEqual( image["R"][index], 0, 6 )
228+
self.assertAlmostEqual( image["G"][index], 0, 6 )
229229
self.assertAlmostEqual( image["B"][index], 1, 6 )
230230

231231
def testIndexedUV( self ) :

test/IECoreGL/Renderer.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -282,17 +282,17 @@ def testStackBug( self ) :
282282
index = dimensions.x * int(dimensions.y * 0.5) + int(dimensions.x * 0.5)
283283
self.assertAlmostEqual( i["R"][index], 1, 6 )
284284
self.assertAlmostEqual( i["G"][index], 1, 6 )
285-
self.assertEqual( i["B"][index], 0 )
285+
self.assertAlmostEqual( i["B"][index], 0, 6 )
286286

287287
index = dimensions.x * int(dimensions.y * 0.5)
288288
self.assertAlmostEqual( i["R"][index], 1, 6 )
289-
self.assertEqual( i["G"][index], 0 )
290-
self.assertEqual( i["B"][index], 0 )
289+
self.assertAlmostEqual( i["G"][index], 0, 6 )
290+
self.assertAlmostEqual( i["B"][index], 0, 6 )
291291

292292
index = dimensions.x * int(dimensions.y * 0.5) + int(dimensions.x * 1) - 1
293293
self.assertAlmostEqual( i["R"][index], 1, 6 )
294-
self.assertEqual( i["G"][index], 0 )
295-
self.assertEqual( i["B"][index], 0 )
294+
self.assertAlmostEqual( i["G"][index], 0, 6 )
295+
self.assertAlmostEqual( i["B"][index], 0, 6 )
296296

297297
def testPrimVars( self ) :
298298

@@ -345,18 +345,18 @@ def testPrimVars( self ) :
345345
i = IECore.Reader.create( os.path.join( os.path.dirname( __file__ ), "output", "testPrimVars.tif" ) ).read()
346346
dimensions = i.dataWindow.size() + imath.V2i( 1 )
347347
index = dimensions.x * int(dimensions.y * 0.5)
348-
self.assertEqual( i["R"][index], 0 )
348+
self.assertAlmostEqual( i["R"][index], 0, 6 )
349349
self.assertAlmostEqual( i["G"][index], 1, 6 )
350-
self.assertEqual( i["B"][index], 0 )
350+
self.assertAlmostEqual( i["B"][index], 0, 6 )
351351

352352
index = dimensions.x * int(dimensions.y * 0.5) + int(dimensions.x * 0.5)
353353
self.assertAlmostEqual( i["R"][index], 1, 6 )
354-
self.assertEqual( i["G"][index], 0 )
355-
self.assertEqual( i["B"][index], 0 )
354+
self.assertAlmostEqual( i["G"][index], 0, 6 )
355+
self.assertAlmostEqual( i["B"][index], 0, 6 )
356356

357357
index = dimensions.x * int(dimensions.y * 0.5) + int(dimensions.x * 1) - 1
358-
self.assertEqual( i["R"][index], 0 )
359-
self.assertEqual( i["G"][index], 0 )
358+
self.assertAlmostEqual( i["R"][index], 0, 6 )
359+
self.assertAlmostEqual( i["G"][index], 0, 6 )
360360
self.assertAlmostEqual( i["B"][index], 1, 6 )
361361

362362
## \todo Make this assert something

test/IECoreGL/ShadingTest.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -825,10 +825,11 @@ def testVertexCsDoesntAffectWireframe( self ) :
825825
# wireframe is green, and vertex Cs is black,
826826
# so there should be no contribution from
827827
# wireframe or solid shading in the red channel.
828-
self.assertEqual( sum( image["R"] ), 0 )
828+
self.assertAlmostEqual( sum( image["R"] ), 0, 4 )
829829
# black vertex colour should have no effect on
830830
# green wireframe, so we should have some wireframe
831831
# contribution in the green channel.
832+
self.assertNotAlmostEqual( sum( image["G"] ), 0, 4 )
832833
self.assertTrue( sum( image["G"] ) > 0 )
833834

834835
def testUniformFloatArrayParameters( self ) :

0 commit comments

Comments
 (0)