def impl_test(self): # Precondition: renderer visible self.validateScreenshot(self.renderer, "scc_only_cube.png", useSystemCompositorForScreenshot=True) # Surface is controlled by scc before the application creates the surface self.renderer.send_ramsh_command("scastl {0} {1}".format( self.testSurfaceIVIIds["wlClient3"], self.testLayer), waitForRendererConfirmation=True) self.renderer.send_ramsh_command("scv {0} 1".format( self.testSurfaceIVIIds["wlClient3"]), waitForRendererConfirmation=True) self.expectedSurfaceIds.add("{0}".format( self.testSurfaceIVIIds["wlClient3"])) self.assertTrue(self.wait_on_surfaces_beeing_registered_in_scc()) self.wlClient3 = self.target.start_application( "ivi-gears", "-I {0} --still -g 480x480".format( self.testSurfaceIVIIds["wlClient3"]), binaryDirectoryOnTarget=self.target.baseWorkingDirectory) self.addCleanup(self.target.kill_application, self.wlClient3) # wait for content available on wlClient3 surface before doing screenshot ensureHasContentOnSurface(self.renderer, self.testSurfaceIVIIds["wlClient3"]) ensureSystemCompositorRoundTrip(self.renderer, self.testSurfaceIVIIds["wlClient3"]) # Postcondition: renderer and gears No. 3 visible self.validateScreenshot(self.renderer, "scc_big_red_gear_left_and_cube.png", useSystemCompositorForScreenshot=True)
def impl_test(self): # Precondition: renderer visible self.validateScreenshot(self.renderer, "scc_only_cube.png", useSystemCompositorForScreenshot=True) # New surface registers during runtime of renderer self.wlClient3 = self.target.start_application( "ivi-gears", "-I {0} --still -g 480x480".format( self.testSurfaceIVIIds["wlClient3"]), binaryDirectoryOnTarget=self.target.baseWorkingDirectory) self.addCleanup(self.target.kill_application, self.wlClient3) self.wlClient3.initialisation_message_to_look_for( "time since startup until first eglSwapBuffers done") self.expectedSurfaceIds.add("{0}".format( self.testSurfaceIVIIds["wlClient3"])) self.assertTrue(self.wait_on_surfaces_beeing_registered_in_scc()) self.renderer.send_ramsh_command("scastl {0} {1}".format( self.testSurfaceIVIIds["wlClient3"], self.testLayer), waitForRendererConfirmation=True) self.renderer.send_ramsh_command("scv {0} 1".format( self.testSurfaceIVIIds["wlClient3"]), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.testSurfaceIVIIds["wlClient3"]) # Postcondition: renderer and gears No. 3 visible self.validateScreenshot(self.renderer, "scc_big_red_gear_left_and_cube.png", useSystemCompositorForScreenshot=True)
def impl_test(self): ensureHasContentOnSurface(self.renderer, self.rendererSurfaceIviId) ensureHasContentOnSurface(self.rendererbackground, self.backgroundRendererSurfaceIviId) self.renderer.showScene(26) self.renderer.send_ramsh_command("skipUnmodifiedBuffers 0", waitForRendererConfirmation=True) # Add surface to second layer self.renderer.send_ramsh_command("scAddSurfaceToLayer {0} {1}".format( self.rendererSurfaceIviId, self.secondLayerIviId), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.rendererSurfaceIviId) self.validateScreenshot(self.renderer, "testClient_move_between_IVI_layers_A.png", useSystemCompositorForScreenshot=True) # Remove surface from first layer self.renderer.send_ramsh_command( "scRemoveSurfaceFromLayer {0} {1}".format( self.rendererSurfaceIviId, self.firstLayerIviId), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.rendererSurfaceIviId) self.validateScreenshot(self.renderer, "testClient_move_between_IVI_layers_B.png", useSystemCompositorForScreenshot=True)
def impl_test(self): # Precondition: renderer and gears No. 1 and 2 visible self.renderer.send_ramsh_command("screct {0} 900 0 384 384".format( self.testSurfaceIVIIds["wlClient1"]), waitForRendererConfirmation=True) self.renderer.send_ramsh_command("scv {0} 1".format( self.testSurfaceIVIIds["wlClient1"]), waitForRendererConfirmation=True) self.renderer.send_ramsh_command("scv {0} 1".format( self.testSurfaceIVIIds["wlClient2"]), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.testSurfaceIVIIds["wlClient2"]) self.validateScreenshot( self.renderer, "scc_white_gear_left_red_gear_right_and_cube.png", useSystemCompositorForScreenshot=True) # Destroy surface of ivi-gears No. 1 self.target.ivi_control.destroySurface( self.testSurfaceIVIIds["wlClient1"]) self.target.ivi_control.flush() self.expectedSurfaceIds.remove("{0}".format( self.testSurfaceIVIIds["wlClient1"])) self.assertTrue(self.wait_on_surfaces_beeing_registered_in_scc()) # Postcondition: renderer and gears No. 2 visible self.validateScreenshot(self.renderer, "scc_white_gear_left_and_cube.png", useSystemCompositorForScreenshot=True)
def impl_test(self): # Precondition: renderer and gears No.1 and 2 visible self.renderer.send_ramsh_command("screct {0} 900 0 384 384".format( self.testSurfaceIVIIds["wlClient1"]), waitForRendererConfirmation=True) self.renderer.send_ramsh_command("scv {0} 1".format( self.testSurfaceIVIIds["wlClient1"]), waitForRendererConfirmation=True) self.renderer.send_ramsh_command("scv {0} 1".format( self.testSurfaceIVIIds["wlClient2"]), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.testSurfaceIVIIds["wlClient2"]) self.validateScreenshot( self.renderer, "scc_white_gear_left_red_gear_right_and_cube.png", useSystemCompositorForScreenshot=True) # Move ivi-gears No. 1 to left and ivi-gears No. 2 to right and a bit lower self.renderer.send_ramsh_command("screct {0} 0 0 384 384".format( self.testSurfaceIVIIds["wlClient1"]), waitForRendererConfirmation=True) self.renderer.send_ramsh_command("screct {0} 900 100 384 384".format( self.testSurfaceIVIIds["wlClient2"]), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.testSurfaceIVIIds["wlClient2"]) # Postcondition: renderer and gears No.1 and 2 visible at changed positions self.validateScreenshot( self.renderer, "scc_red_gear_left_white_gear_right_lowered_and_cube.png", useSystemCompositorForScreenshot=True)
def impl_test(self): self.renderer.showScene(21, 1) self.renderer.showScene(22, 2) # Can't rely on system compositor behavior here. Especially given the fact that # its scene is layouted with integers, which inevitably must be converted to # floats and vertices somewhere -> float logic on target platforms can be different. self.percentageOfWrongPixelsAllowed = 0.001 self.validateScreenshot(self.renderer, "testClient_twoScenes_displ0.png", displayNumber=1) self.validateScreenshot(self.renderer, "testClient_twoScenes_displ1.png", displayNumber=2) if self.target.systemCompositorControllerSupported: #dummy display covers whole screen self.renderer.send_ramsh_command( "screct {0} 000 0 1900 800".format( self.displaysIviSurfaceIds[0]), waitForRendererConfirmation=True) #test displays are next to each other self.renderer.send_ramsh_command("screct {0} 0 0 200 600".format( self.displaysIviSurfaceIds[1]), waitForRendererConfirmation=True) self.renderer.send_ramsh_command("screct {0} 200 0 200 600".format( self.displaysIviSurfaceIds[2]), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.displaysIviSurfaceIds[2]) self.validateScreenshot(self.renderer, "testClient_twoDisplaysPlacedTogether.png", useSystemCompositorForScreenshot=True)
def impl_test(self): # Precondition: renderer and gears No. 1 and 2 visible self.renderer.send_ramsh_command("screct {0} 900 0 384 384".format( self.testSurfaceIVIIds["wlClient1"]), waitForRendererConfirmation=True) self.renderer.send_ramsh_command("scv {0} 1".format( self.testSurfaceIVIIds["wlClient1"]), waitForRendererConfirmation=True) self.renderer.send_ramsh_command("scv {0} 1".format( self.testSurfaceIVIIds["wlClient2"]), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.testSurfaceIVIIds["wlClient2"]) self.validateScreenshot( self.renderer, "scc_white_gear_left_red_gear_right_and_cube.png", useSystemCompositorForScreenshot=True) # Remove surface of gears No. 1 from layer self.renderer.send_ramsh_command("scrsfl {0} {1}".format( self.testSurfaceIVIIds["wlClient1"], self.testLayer), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.testSurfaceIVIIds["wlClient2"]) # Postcondition: renderer and gears No. 2 visible self.validateScreenshot(self.renderer, "scc_white_gear_left_and_cube.png", useSystemCompositorForScreenshot=True)
def impl_test(self): # Precondition: renderer and gears No. 1 and 2 visible self.renderer.send_ramsh_command("screct {0} 900 0 384 384".format( self.testSurfaceIVIIds["wlClient1"]), waitForRendererConfirmation=True) self.renderer.send_ramsh_command("scv {0} 1".format( self.testSurfaceIVIIds["wlClient1"]), waitForRendererConfirmation=True) self.renderer.send_ramsh_command("scv {0} 1".format( self.testSurfaceIVIIds["wlClient2"]), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.testSurfaceIVIIds["wlClient2"]) self.validateScreenshot( self.renderer, "scc_white_gear_left_red_gear_right_and_cube.png", useSystemCompositorForScreenshot=True) # Make test layer containing both ivi-gears and renderer invisible self.renderer.send_ramsh_command("sclv {0} 0".format(self.testLayer), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.testSurfaceIVIIds["wlClient2"]) # Postcondition: renderer and both gears invisible, black background renderer visible self.validateScreenshot(self.renderer, "black.png", useSystemCompositorForScreenshot=True)
def impl_test(self): # Precondition: renderer and ivi-gears No. 1 and 2 visible self.renderer.send_ramsh_command("screct {0} 900 0 384 384".format( self.testSurfaceIVIIds["wlClient1"]), waitForRendererConfirmation=True) self.renderer.send_ramsh_command("scv {0} 1".format( self.testSurfaceIVIIds["wlClient1"]), waitForRendererConfirmation=True) self.renderer.send_ramsh_command("scv {0} 1".format( self.testSurfaceIVIIds["wlClient2"]), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.testSurfaceIVIIds["wlClient2"]) self.validateScreenshot( self.renderer, "scc_white_gear_left_red_gear_right_and_cube.png", useSystemCompositorForScreenshot=True) # Destroy surface of ivi-gears No. 1 self.target.ivi_control.destroySurface( self.testSurfaceIVIIds["wlClient1"]) self.target.ivi_control.flush() self.expectedSurfaceIds.remove("{0}".format( self.testSurfaceIVIIds["wlClient1"])) self.assertTrue(self.wait_on_surfaces_beeing_registered_in_scc()) self.validateScreenshot(self.renderer, "scc_white_gear_left_and_cube.png", useSystemCompositorForScreenshot=True) # New surface registers with same ivi-id like ivi-gears No. 1 had before self.wlClient4 = self.target.start_application( "ivi-gears", "-I {0} --still -g 480x480".format( self.testSurfaceIVIIds["wlClient4"]), binaryDirectoryOnTarget=self.target.baseWorkingDirectory) self.addCleanup(self.target.kill_application, self.wlClient4) self.wlClient4.initialisation_message_to_look_for( "time since startup until first eglSwapBuffers done") self.expectedSurfaceIds.add("{0}".format( self.testSurfaceIVIIds["wlClient4"])) self.assertTrue(self.wait_on_surfaces_beeing_registered_in_scc()) self.renderer.send_ramsh_command("screct {0} 600 0 480 480".format( self.testSurfaceIVIIds["wlClient4"]), waitForRendererConfirmation=True) self.renderer.send_ramsh_command("scastl {0} {1}".format( self.testSurfaceIVIIds["wlClient4"], self.testLayer), waitForRendererConfirmation=True) self.renderer.send_ramsh_command("scv {0} 1".format( self.testSurfaceIVIIds["wlClient4"]), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.testSurfaceIVIIds["wlClient4"]) # Postcondition: renderer and gears No. 2 and 4 visible self.validateScreenshot( self.renderer, "scc_white_gear_left_big_red_gear_right_and_cube.png", useSystemCompositorForScreenshot=True)
def impl_test(self): if self.target.systemCompositorControllerSupported: ensureHasContentOnSurface(self.rendererLeft, self.firstSurfaceIviId) ensureHasContentOnSurface(self.rendererRight, self.secondSurfaceIviId) self.rendererLeft.showScene(25) self.rendererRight.showScene(26) ensureSystemCompositorRoundTrip(self.rendererLeft, self.firstSurfaceIviId) self.validateScreenshot(self.rendererLeft, "testClient_multiple_ivi_layers.png", useSystemCompositorForScreenshot=True) else: log.warning("TestMultipleIVILayers skipped as system compositor controller support is not configured for this target")
def impl_test(self): # Precondition: renderer and gears No.1 visible self.renderer.send_ramsh_command("scv {0} 1".format(self.testSurfaceIVIIds["wlClient1"]), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.testSurfaceIVIIds["renderer"]) self.validateScreenshot(self.renderer, "scc_red_gear_left_and_cube.png", useSystemCompositorForScreenshot=True) # Change opacity of ivi-gears No.1 to 50% self.renderer.send_ramsh_command("sco {0} 0.5".format(self.testSurfaceIVIIds["wlClient1"]), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.testSurfaceIVIIds["renderer"]) # Postcondition: renderer and half transparent gears visible self.validateScreenshot(self.renderer, "scc_red_transparent_gear_left_and_cube.png", useSystemCompositorForScreenshot=True)
def impl_test(self): # Precondition: renderer and gears visible self.renderer.send_ramsh_command("scv {0} 1".format(self.testSurfaceIVIIds["wlClient1"]), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.testSurfaceIVIIds["wlClient2"]) self.validateScreenshot(self.renderer, "scc_red_gear_left_and_cube.png", useSystemCompositorForScreenshot=True) # Make ivi-gears No. 1 invisible self.renderer.send_ramsh_command("scv {0} 0".format(self.testSurfaceIVIIds["wlClient1"]), waitForRendererConfirmation=True) ensureSystemCompositorRoundTrip(self.renderer, self.testSurfaceIVIIds["wlClient2"]) # Postcondition: renderer and gears visible self.validateScreenshot(self.renderer, "scc_only_cube.png", useSystemCompositorForScreenshot=True)