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)
Exemple #2
0
    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)
Exemple #4
0
    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)
Exemple #8
0
    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)
Exemple #12
0
    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)