cutedriver-qt-sut-plugin 2.0.0.20210120165900
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/env.rb +24 -0
- data/installer/extconf.rb +62 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin.rb +23 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/action.rb +157 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/application.rb +312 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/attribute.rb +300 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/behaviour.rb +214 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/configure_behaviour.rb +317 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/cute_cpu.rb +145 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/cute_gpu.rb +147 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/cute_mem.rb +142 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/cute_pwr.rb +146 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/events.rb +192 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/file_transfer.rb +375 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/find.rb +82 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/fixture.rb +214 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/fps.rb +189 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/gesture.rb +1039 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/infologger.rb +767 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/key_press.rb +166 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/locale_db.rb +157 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/method.rb +112 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/multitouch.rb +474 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/os.rb +100 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/qt_api_method.rb +148 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/record.rb +134 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/screen_capture.rb +279 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/settings.rb +302 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/sut.rb +840 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/synchronization.rb +257 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/treewidgetitemcolumn.rb +117 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/type_text.rb +97 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/view_item.rb +97 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/webkit.rb +272 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/behaviours/widget.rb +877 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/action.rb +30 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/configure_command.rb +38 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/drag.rb +44 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/find_object.rb +67 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/group.rb +44 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/infologger_command.rb +38 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/qt.rb +171 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/tap.rb +54 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/version.rb +34 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/commands/widget.rb +199 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/agent.rb +54 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/application.rb +192 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/configure_command.rb +53 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/find_object.rb +48 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/fixture.rb +65 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/group.rb +57 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/infologger_command.rb +53 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/key_sequence.rb +93 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/screen_capture.rb +53 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/tap.rb +62 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/version.rb +46 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/controllers/widget.rb +98 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/plugin.rb +200 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/sut/adapter.rb +466 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/sut/communication.rb +185 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/sut/controller.rb +69 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/util/find_object_generator.rb +287 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/util/fixture_parameter.rb +77 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/util/message_composer.rb +370 -0
- data/lib/testability-driver-plugins/testability-driver-qt-sut-plugin/util/widget.rb +79 -0
- data/lib/testability-driver-qt-sut-plugin.rb +24 -0
- data/xml/behaviour/qt.xml +845 -0
- data/xml/defaults/sut_qt.xml +9 -0
- data/xml/keymap/qt.xml +321 -0
- data/xml/keymap/win.xml +174 -0
- data/xml/template/qt.xml +141 -0
- metadata +127 -0
| @@ -0,0 +1,147 @@ | |
| 1 | 
            +
            ############################################################################
         | 
| 2 | 
            +
            ## 
         | 
| 3 | 
            +
            ## Copyright (C) 2017 Link Motion Oy
         | 
| 4 | 
            +
            ## Author(s): Juhapekka Piiroinen <juhapekka.piiroinen@link-motion.com>
         | 
| 5 | 
            +
            ##
         | 
| 6 | 
            +
            ## All rights reserved. 
         | 
| 7 | 
            +
            ## Contact: Link Motion (info@link-motion.com) 
         | 
| 8 | 
            +
            ## 
         | 
| 9 | 
            +
            ## This file is part of CuteDriver. 
         | 
| 10 | 
            +
            ## 
         | 
| 11 | 
            +
            ## This library is free software; you can redistribute it and/or 
         | 
| 12 | 
            +
            ## modify it under the terms of the GNU Lesser General Public 
         | 
| 13 | 
            +
            ## License version 2.1 as published by the Free Software Foundation 
         | 
| 14 | 
            +
            ## and appearing in the file LICENSE.LGPL included in the packaging 
         | 
| 15 | 
            +
            ## of this file. 
         | 
| 16 | 
            +
            ## 
         | 
| 17 | 
            +
            ############################################################################
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            module MobyBehaviour
         | 
| 20 | 
            +
                
         | 
| 21 | 
            +
                  module QT
         | 
| 22 | 
            +
                
         | 
| 23 | 
            +
                    # == description
         | 
| 24 | 
            +
                    #
         | 
| 25 | 
            +
                    # == behaviour
         | 
| 26 | 
            +
                    # QtGpu
         | 
| 27 | 
            +
                    #
         | 
| 28 | 
            +
                    # == requires
         | 
| 29 | 
            +
                    # testability-driver-qt-sut-plugin
         | 
| 30 | 
            +
                    #
         | 
| 31 | 
            +
                    # == input_type
         | 
| 32 | 
            +
                    # *
         | 
| 33 | 
            +
                    #
         | 
| 34 | 
            +
                    # == sut_type
         | 
| 35 | 
            +
                    # QT
         | 
| 36 | 
            +
                    #
         | 
| 37 | 
            +
                    # == sut_version
         | 
| 38 | 
            +
                    # *
         | 
| 39 | 
            +
                    #
         | 
| 40 | 
            +
                    # == objects
         | 
| 41 | 
            +
                    # *
         | 
| 42 | 
            +
                    #
         | 
| 43 | 
            +
                    module Gpu
         | 
| 44 | 
            +
                
         | 
| 45 | 
            +
                      include MobyBehaviour::QT::Behaviour
         | 
| 46 | 
            +
                
         | 
| 47 | 
            +
                      # == description
         | 
| 48 | 
            +
                      # Start collecting GPU usage per second data for the app. 
         | 
| 49 | 
            +
                      # 
         | 
| 50 | 
            +
                      # == returns
         | 
| 51 | 
            +
                      # NilClass
         | 
| 52 | 
            +
                      #   description: -
         | 
| 53 | 
            +
                      #   example: -
         | 
| 54 | 
            +
                      #
         | 
| 55 | 
            +
                      # == exceptions
         | 
| 56 | 
            +
                      # ArgumentError
         | 
| 57 | 
            +
                      #  description:  In case the given parameters are not valid.
         | 
| 58 | 
            +
                      #    
         | 
| 59 | 
            +
                      def start_gpu_measurement
         | 
| 60 | 
            +
                
         | 
| 61 | 
            +
                        begin
         | 
| 62 | 
            +
                
         | 
| 63 | 
            +
                          log_gpu_mem(:interval => 1, :filePath => '/tmp') 
         | 
| 64 | 
            +
                
         | 
| 65 | 
            +
                        rescue Exception
         | 
| 66 | 
            +
                
         | 
| 67 | 
            +
                          $logger.behaviour "FAIL;Failed start_gpu_mem_measurement.;#{ identity };start_gpu_mem_measurement;"
         | 
| 68 | 
            +
                          raise
         | 
| 69 | 
            +
                
         | 
| 70 | 
            +
                        end
         | 
| 71 | 
            +
                
         | 
| 72 | 
            +
                        $logger.behaviour "PASS;Operation start_gpu_mem_measurement executed successfully.;#{ identity };start_gpu_mem_measurement;"
         | 
| 73 | 
            +
                
         | 
| 74 | 
            +
                        nil
         | 
| 75 | 
            +
                        
         | 
| 76 | 
            +
                      end
         | 
| 77 | 
            +
                
         | 
| 78 | 
            +
                      # == description
         | 
| 79 | 
            +
                      # Stop collecting GPU usage data for the object. 
         | 
| 80 | 
            +
                      # 
         | 
| 81 | 
            +
                      # == returns
         | 
| 82 | 
            +
                      # Array
         | 
| 83 | 
            +
                      #  description: An Array of GPU entries. Each entry is a hash table that contains the value and time stamp {value => 42.00, usedMem => 42.00, freeMem => 12.34, totalMem => 43.21, processPrivateMem => 32.14, processSharedMem => 23.41 time_stamp => 06:49:42.259}
         | 
| 84 | 
            +
                      #  example: [{value => 42.0, usedMem => 42.0, freeMem => 123.0, totalMem => 256.0, processPrivateMem => 12.0, processSharedMem => 32.0, time_stamp => 06:49:42.259}, {value => 32.0, usedMem => 42.0, freeMem => 123.0, totalMem => 256.0, processPrivateMem => 12.0, processSharedMem => 32.0, time_stamp => 06:49:43.259}]
         | 
| 85 | 
            +
                      #
         | 
| 86 | 
            +
                      # == exceptions
         | 
| 87 | 
            +
                      # ArgumentError
         | 
| 88 | 
            +
                      #  description:  In case the given parameters are not valid.
         | 
| 89 | 
            +
                      #    
         | 
| 90 | 
            +
                      def stop_gpu_measurement
         | 
| 91 | 
            +
                
         | 
| 92 | 
            +
                        begin
         | 
| 93 | 
            +
                
         | 
| 94 | 
            +
                          results = parse_results_gpu( stop_gpu_log() )
         | 
| 95 | 
            +
                
         | 
| 96 | 
            +
                        rescue Exception
         | 
| 97 | 
            +
                
         | 
| 98 | 
            +
                          $logger.behaviour "FAIL;Failed stop_gpu_measurement.;#{ identity };stop_gpu_measurement;"
         | 
| 99 | 
            +
                
         | 
| 100 | 
            +
                          raise
         | 
| 101 | 
            +
                
         | 
| 102 | 
            +
                        end
         | 
| 103 | 
            +
                
         | 
| 104 | 
            +
                        $logger.behaviour "PASS;Operation stop_gpu_measurement executed successfully.;#{ identity };stop_gpu_measurement;"
         | 
| 105 | 
            +
                
         | 
| 106 | 
            +
                        results
         | 
| 107 | 
            +
                
         | 
| 108 | 
            +
                      end
         | 
| 109 | 
            +
                
         | 
| 110 | 
            +
                
         | 
| 111 | 
            +
                    private
         | 
| 112 | 
            +
                      
         | 
| 113 | 
            +
                      def parse_results_gpu( results_xml )
         | 
| 114 | 
            +
                        state_object = @sut.state_object( results_xml )
         | 
| 115 | 
            +
                
         | 
| 116 | 
            +
                        results = []
         | 
| 117 | 
            +
                
         | 
| 118 | 
            +
                        count = state_object.logData.attribute( 'entryCount' ).to_i
         | 
| 119 | 
            +
                
         | 
| 120 | 
            +
                        for i in 0...count
         | 
| 121 | 
            +
                          totalMem = state_object.logEntry(:id => i.to_s).attribute('totalMem').to_f
         | 
| 122 | 
            +
                          usedMem = state_object.logEntry(:id => i.to_s).attribute('usedMem').to_f
         | 
| 123 | 
            +
                          freeMem = state_object.logEntry(:id => i.to_s).attribute('freeMem').to_f
         | 
| 124 | 
            +
                          processPrivateMem = state_object.logEntry(:id => i.to_s).attribute('processPrivateMem').to_f              
         | 
| 125 | 
            +
                          processSharedMem = state_object.logEntry(:id => i.to_s).attribute('processSharedMem').to_f
         | 
| 126 | 
            +
                
         | 
| 127 | 
            +
                          time_stamp = state_object.logEntry(:id => i.to_s).attribute('timeStamp')
         | 
| 128 | 
            +
                
         | 
| 129 | 
            +
                          entry = {:value => usedMem, :usedMem => usedMem, :freeMem => freeMem, :totalMem => totalMem, :processPrivateMem => processPrivateMem, :processSharedMem => processSharedMem, :time_stamp => time_stamp}
         | 
| 130 | 
            +
                
         | 
| 131 | 
            +
                          results.push(entry)
         | 
| 132 | 
            +
                
         | 
| 133 | 
            +
                        end
         | 
| 134 | 
            +
                
         | 
| 135 | 
            +
                        results
         | 
| 136 | 
            +
                
         | 
| 137 | 
            +
                      end
         | 
| 138 | 
            +
                      
         | 
| 139 | 
            +
                      # enable hooking for performance measurement & debug logging
         | 
| 140 | 
            +
                      TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
         | 
| 141 | 
            +
                
         | 
| 142 | 
            +
                    end # Gpu
         | 
| 143 | 
            +
                
         | 
| 144 | 
            +
                  end # QT
         | 
| 145 | 
            +
                
         | 
| 146 | 
            +
                end # MobyBase
         | 
| 147 | 
            +
                
         | 
| @@ -0,0 +1,142 @@ | |
| 1 | 
            +
            ############################################################################
         | 
| 2 | 
            +
            ## 
         | 
| 3 | 
            +
            ## Copyright (C) 2017 Link Motion Oy
         | 
| 4 | 
            +
            ## Author(s): Juhapekka Piiroinen <juhapekka.piiroinen@link-motion.com>
         | 
| 5 | 
            +
            ##
         | 
| 6 | 
            +
            ## All rights reserved. 
         | 
| 7 | 
            +
            ## Contact: Link Motion (info@link-motion.com) 
         | 
| 8 | 
            +
            ## 
         | 
| 9 | 
            +
            ## This file is part of CuteDriver. 
         | 
| 10 | 
            +
            ## 
         | 
| 11 | 
            +
            ## This library is free software; you can redistribute it and/or 
         | 
| 12 | 
            +
            ## modify it under the terms of the GNU Lesser General Public 
         | 
| 13 | 
            +
            ## License version 2.1 as published by the Free Software Foundation 
         | 
| 14 | 
            +
            ## and appearing in the file LICENSE.LGPL included in the packaging 
         | 
| 15 | 
            +
            ## of this file. 
         | 
| 16 | 
            +
            ## 
         | 
| 17 | 
            +
            ############################################################################
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            module MobyBehaviour
         | 
| 20 | 
            +
                
         | 
| 21 | 
            +
                  module QT
         | 
| 22 | 
            +
                
         | 
| 23 | 
            +
                    # == description
         | 
| 24 | 
            +
                    #
         | 
| 25 | 
            +
                    # == behaviour
         | 
| 26 | 
            +
                    # QtMem
         | 
| 27 | 
            +
                    #
         | 
| 28 | 
            +
                    # == requires
         | 
| 29 | 
            +
                    # testability-driver-qt-sut-plugin
         | 
| 30 | 
            +
                    #
         | 
| 31 | 
            +
                    # == input_type
         | 
| 32 | 
            +
                    # *
         | 
| 33 | 
            +
                    #
         | 
| 34 | 
            +
                    # == sut_type
         | 
| 35 | 
            +
                    # QT
         | 
| 36 | 
            +
                    #
         | 
| 37 | 
            +
                    # == sut_version
         | 
| 38 | 
            +
                    # *
         | 
| 39 | 
            +
                    #
         | 
| 40 | 
            +
                    # == objects
         | 
| 41 | 
            +
                    # *
         | 
| 42 | 
            +
                    #
         | 
| 43 | 
            +
                    module Mem
         | 
| 44 | 
            +
                
         | 
| 45 | 
            +
                      include MobyBehaviour::QT::Behaviour
         | 
| 46 | 
            +
                
         | 
| 47 | 
            +
                      # == description
         | 
| 48 | 
            +
                      # Start collecting MEM usage per second data for the app. 
         | 
| 49 | 
            +
                      # 
         | 
| 50 | 
            +
                      # == returns
         | 
| 51 | 
            +
                      # NilClass
         | 
| 52 | 
            +
                      #   description: -
         | 
| 53 | 
            +
                      #   example: -
         | 
| 54 | 
            +
                      #
         | 
| 55 | 
            +
                      # == exceptions
         | 
| 56 | 
            +
                      # ArgumentError
         | 
| 57 | 
            +
                      #  description:  In case the given parameters are not valid.
         | 
| 58 | 
            +
                      #    
         | 
| 59 | 
            +
                      def start_mem_measurement
         | 
| 60 | 
            +
                
         | 
| 61 | 
            +
                        begin
         | 
| 62 | 
            +
                
         | 
| 63 | 
            +
                          log_mem(:interval => 1, :filePath => '/tmp') 
         | 
| 64 | 
            +
                
         | 
| 65 | 
            +
                        rescue Exception
         | 
| 66 | 
            +
                
         | 
| 67 | 
            +
                          $logger.behaviour "FAIL;Failed start_mem_measurement.;#{ identity };start_mem_measurement;"
         | 
| 68 | 
            +
                          raise
         | 
| 69 | 
            +
                
         | 
| 70 | 
            +
                        end
         | 
| 71 | 
            +
                
         | 
| 72 | 
            +
                        $logger.behaviour "PASS;Operation start_mem_measurement executed successfully.;#{ identity };start_mem_measurement;"
         | 
| 73 | 
            +
                
         | 
| 74 | 
            +
                        nil
         | 
| 75 | 
            +
                        
         | 
| 76 | 
            +
                      end
         | 
| 77 | 
            +
                
         | 
| 78 | 
            +
                      # == description
         | 
| 79 | 
            +
                      # Stop collecting MEM usage data for the object. 
         | 
| 80 | 
            +
                      # 
         | 
| 81 | 
            +
                      # == returns
         | 
| 82 | 
            +
                      # Array
         | 
| 83 | 
            +
                      #  description: An Array of MEM entries. Each entry is a hash table that contains the value and time stamp {value => 42.00, heapSize => 42.00, time_stamp => 06:49:42.259}
         | 
| 84 | 
            +
                      #  example: [{value => 42.0, heapSize => 42.0, time_stamp => 06:49:42.259}, {value => 32.0, heapSize => 32.0, time_stamp => 06:49:43.259}]
         | 
| 85 | 
            +
                      #
         | 
| 86 | 
            +
                      # == exceptions
         | 
| 87 | 
            +
                      # ArgumentError
         | 
| 88 | 
            +
                      #  description:  In case the given parameters are not valid.
         | 
| 89 | 
            +
                      #    
         | 
| 90 | 
            +
                      def stop_mem_measurement
         | 
| 91 | 
            +
                
         | 
| 92 | 
            +
                        begin
         | 
| 93 | 
            +
                
         | 
| 94 | 
            +
                          results = parse_results_mem( stop_mem_log() )
         | 
| 95 | 
            +
                
         | 
| 96 | 
            +
                        rescue Exception
         | 
| 97 | 
            +
                
         | 
| 98 | 
            +
                          $logger.behaviour "FAIL;Failed stop_mem_measurement.;#{ identity };stop_mem_measurement;"
         | 
| 99 | 
            +
                
         | 
| 100 | 
            +
                          raise
         | 
| 101 | 
            +
                
         | 
| 102 | 
            +
                        end
         | 
| 103 | 
            +
                
         | 
| 104 | 
            +
                        $logger.behaviour "PASS;Operation stop_mem_measurement executed successfully.;#{ identity };stop_mem_measurement;"
         | 
| 105 | 
            +
                
         | 
| 106 | 
            +
                        results
         | 
| 107 | 
            +
                
         | 
| 108 | 
            +
                      end
         | 
| 109 | 
            +
                
         | 
| 110 | 
            +
                
         | 
| 111 | 
            +
                    private
         | 
| 112 | 
            +
                      
         | 
| 113 | 
            +
                      def parse_results_mem( results_xml )
         | 
| 114 | 
            +
                        state_object = @sut.state_object( results_xml )
         | 
| 115 | 
            +
                        results = []
         | 
| 116 | 
            +
                
         | 
| 117 | 
            +
                        count = state_object.logData.attribute( 'entryCount' ).to_i
         | 
| 118 | 
            +
                
         | 
| 119 | 
            +
                        for i in 0...count
         | 
| 120 | 
            +
                          heapSize = state_object.logEntry(:id => i.to_s).attribute('heapSize').to_i
         | 
| 121 | 
            +
                
         | 
| 122 | 
            +
                          time_stamp = state_object.logEntry(:id => i.to_s).attribute('timeStamp')
         | 
| 123 | 
            +
                
         | 
| 124 | 
            +
                          entry = {:value => heapSize, :heapSize => heapSize, :time_stamp => time_stamp}
         | 
| 125 | 
            +
                
         | 
| 126 | 
            +
                          results.push(entry)
         | 
| 127 | 
            +
                
         | 
| 128 | 
            +
                        end
         | 
| 129 | 
            +
                
         | 
| 130 | 
            +
                        results
         | 
| 131 | 
            +
                
         | 
| 132 | 
            +
                      end
         | 
| 133 | 
            +
                      
         | 
| 134 | 
            +
                      # enable hooking for performance measurement & debug logging
         | 
| 135 | 
            +
                      TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
         | 
| 136 | 
            +
                
         | 
| 137 | 
            +
                    end # Mem
         | 
| 138 | 
            +
                
         | 
| 139 | 
            +
                  end # QT
         | 
| 140 | 
            +
                
         | 
| 141 | 
            +
                end # MobyBase
         | 
| 142 | 
            +
                
         | 
| @@ -0,0 +1,146 @@ | |
| 1 | 
            +
            ############################################################################
         | 
| 2 | 
            +
            ## 
         | 
| 3 | 
            +
            ## Copyright (C) 2017 Link Motion Oy
         | 
| 4 | 
            +
            ## Author(s): Juhapekka Piiroinen <juhapekka.piiroinen@link-motion.com>
         | 
| 5 | 
            +
            ##
         | 
| 6 | 
            +
            ## All rights reserved. 
         | 
| 7 | 
            +
            ## Contact: Link Motion (info@link-motion.com) 
         | 
| 8 | 
            +
            ## 
         | 
| 9 | 
            +
            ## This file is part of CuteDriver. 
         | 
| 10 | 
            +
            ## 
         | 
| 11 | 
            +
            ## This library is free software; you can redistribute it and/or 
         | 
| 12 | 
            +
            ## modify it under the terms of the GNU Lesser General Public 
         | 
| 13 | 
            +
            ## License version 2.1 as published by the Free Software Foundation 
         | 
| 14 | 
            +
            ## and appearing in the file LICENSE.LGPL included in the packaging 
         | 
| 15 | 
            +
            ## of this file. 
         | 
| 16 | 
            +
            ## 
         | 
| 17 | 
            +
            ############################################################################
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            module MobyBehaviour
         | 
| 20 | 
            +
                
         | 
| 21 | 
            +
                  module QT
         | 
| 22 | 
            +
                
         | 
| 23 | 
            +
                    # == description
         | 
| 24 | 
            +
                    #
         | 
| 25 | 
            +
                    # == behaviour
         | 
| 26 | 
            +
                    # QtPwr
         | 
| 27 | 
            +
                    #
         | 
| 28 | 
            +
                    # == requires
         | 
| 29 | 
            +
                    # testability-driver-qt-sut-plugin
         | 
| 30 | 
            +
                    #
         | 
| 31 | 
            +
                    # == input_type
         | 
| 32 | 
            +
                    # *
         | 
| 33 | 
            +
                    #
         | 
| 34 | 
            +
                    # == sut_type
         | 
| 35 | 
            +
                    # QT
         | 
| 36 | 
            +
                    #
         | 
| 37 | 
            +
                    # == sut_version
         | 
| 38 | 
            +
                    # *
         | 
| 39 | 
            +
                    #
         | 
| 40 | 
            +
                    # == objects
         | 
| 41 | 
            +
                    # *
         | 
| 42 | 
            +
                    #
         | 
| 43 | 
            +
                    module Pwr
         | 
| 44 | 
            +
                
         | 
| 45 | 
            +
                      include MobyBehaviour::QT::Behaviour
         | 
| 46 | 
            +
                
         | 
| 47 | 
            +
                      # == description
         | 
| 48 | 
            +
                      # Start collecting PWR usage per second data for the app. 
         | 
| 49 | 
            +
                      # 
         | 
| 50 | 
            +
                      # == returns
         | 
| 51 | 
            +
                      # NilClass
         | 
| 52 | 
            +
                      #   description: -
         | 
| 53 | 
            +
                      #   example: -
         | 
| 54 | 
            +
                      #
         | 
| 55 | 
            +
                      # == exceptions
         | 
| 56 | 
            +
                      # ArgumentError
         | 
| 57 | 
            +
                      #  description:  In case the given parameters are not valid.
         | 
| 58 | 
            +
                      #    
         | 
| 59 | 
            +
                      def start_pwr_measurement
         | 
| 60 | 
            +
                
         | 
| 61 | 
            +
                        begin
         | 
| 62 | 
            +
                
         | 
| 63 | 
            +
                          log_pwr(:interval => 1, :filePath => '/tmp') 
         | 
| 64 | 
            +
                
         | 
| 65 | 
            +
                        rescue Exception
         | 
| 66 | 
            +
                
         | 
| 67 | 
            +
                          $logger.behaviour "FAIL;Failed start_pwr_measurement.;#{ identity };start_pwr_measurement;"
         | 
| 68 | 
            +
                          raise
         | 
| 69 | 
            +
                
         | 
| 70 | 
            +
                        end
         | 
| 71 | 
            +
                
         | 
| 72 | 
            +
                        $logger.behaviour "PASS;Operation start_pwr_measurement executed successfully.;#{ identity };start_pwr_measurement;"
         | 
| 73 | 
            +
                
         | 
| 74 | 
            +
                        nil
         | 
| 75 | 
            +
                        
         | 
| 76 | 
            +
                      end
         | 
| 77 | 
            +
                
         | 
| 78 | 
            +
                      # == description
         | 
| 79 | 
            +
                      # Stop collecting PWR usage data for the object. 
         | 
| 80 | 
            +
                      # 
         | 
| 81 | 
            +
                      # == returns
         | 
| 82 | 
            +
                      # Array
         | 
| 83 | 
            +
                      #  description: An Array of PWR entries. Each entry is a hash table that contains the value and time stamp {value => 42.00, voltage => 32.00, current => 42.00, time_stamp => 06:49:42.259}
         | 
| 84 | 
            +
                      #  example: [{value => 42.0, current => 42.0, voltage => 12.0, time_stamp => 06:49:42.259}, {value => 32.0, current => 32.0, voltage => 42.0, time_stamp => 06:49:43.259}]
         | 
| 85 | 
            +
                      #
         | 
| 86 | 
            +
                      # == exceptions
         | 
| 87 | 
            +
                      # ArgumentError
         | 
| 88 | 
            +
                      #  description:  In case the given parameters are not valid.
         | 
| 89 | 
            +
                      #    
         | 
| 90 | 
            +
                      def stop_pwr_measurement
         | 
| 91 | 
            +
                
         | 
| 92 | 
            +
                        begin
         | 
| 93 | 
            +
                
         | 
| 94 | 
            +
                          results = parse_results_pwr( stop_pwr_log() )
         | 
| 95 | 
            +
                
         | 
| 96 | 
            +
                        rescue Exception
         | 
| 97 | 
            +
                
         | 
| 98 | 
            +
                          $logger.behaviour "FAIL;Failed stop_pwr_measurement.;#{ identity };stop_pwr_measurement;"
         | 
| 99 | 
            +
                
         | 
| 100 | 
            +
                          raise
         | 
| 101 | 
            +
                
         | 
| 102 | 
            +
                        end
         | 
| 103 | 
            +
                
         | 
| 104 | 
            +
                        $logger.behaviour "PASS;Operation stop_pwr_measurement executed successfully.;#{ identity };stop_pwr_measurement;"
         | 
| 105 | 
            +
                
         | 
| 106 | 
            +
                        results
         | 
| 107 | 
            +
                
         | 
| 108 | 
            +
                      end
         | 
| 109 | 
            +
                
         | 
| 110 | 
            +
                
         | 
| 111 | 
            +
                    private
         | 
| 112 | 
            +
                      
         | 
| 113 | 
            +
                      def parse_results_pwr( results_xml )
         | 
| 114 | 
            +
                        state_object = @sut.state_object( results_xml )
         | 
| 115 | 
            +
                        
         | 
| 116 | 
            +
                        results = []
         | 
| 117 | 
            +
                
         | 
| 118 | 
            +
                        count = state_object.logData.attribute( 'entryCount' ).to_i
         | 
| 119 | 
            +
                
         | 
| 120 | 
            +
                        for i in 0...count
         | 
| 121 | 
            +
                        
         | 
| 122 | 
            +
                          value = state_object.logEntry(:id => i.to_s).attribute('current').to_f
         | 
| 123 | 
            +
                          current = state_object.logEntry(:id => i.to_s).attribute('current').to_f
         | 
| 124 | 
            +
                          voltage = state_object.logEntry(:id => i.to_s).attribute('voltage').to_f
         | 
| 125 | 
            +
                          
         | 
| 126 | 
            +
                          time_stamp = state_object.logEntry(:id => i.to_s).attribute('timeStamp')
         | 
| 127 | 
            +
                
         | 
| 128 | 
            +
                          entry = {:value => value, :current => current, :voltage => voltage, :time_stamp => time_stamp}
         | 
| 129 | 
            +
                
         | 
| 130 | 
            +
                          results.push(entry)
         | 
| 131 | 
            +
                
         | 
| 132 | 
            +
                        end
         | 
| 133 | 
            +
                
         | 
| 134 | 
            +
                        results
         | 
| 135 | 
            +
                
         | 
| 136 | 
            +
                      end
         | 
| 137 | 
            +
                      
         | 
| 138 | 
            +
                      # enable hooking for performance measurement & debug logging
         | 
| 139 | 
            +
                      TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
         | 
| 140 | 
            +
                
         | 
| 141 | 
            +
                    end # Pwr
         | 
| 142 | 
            +
                
         | 
| 143 | 
            +
                  end # QT
         | 
| 144 | 
            +
                
         | 
| 145 | 
            +
                end # MobyBase
         | 
| 146 | 
            +
                
         | 
| @@ -0,0 +1,192 @@ | |
| 1 | 
            +
            ############################################################################
         | 
| 2 | 
            +
            ## 
         | 
| 3 | 
            +
            ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 
         | 
| 4 | 
            +
            ## All rights reserved. 
         | 
| 5 | 
            +
            ## Contact: Nokia Corporation (testabilitydriver@nokia.com) 
         | 
| 6 | 
            +
            ## 
         | 
| 7 | 
            +
            ## This file is part of TDriver. 
         | 
| 8 | 
            +
            ## 
         | 
| 9 | 
            +
            ## If you have questions regarding the use of this file, please contact 
         | 
| 10 | 
            +
            ## Nokia at testabilitydriver@nokia.com . 
         | 
| 11 | 
            +
            ## 
         | 
| 12 | 
            +
            ## This library is free software; you can redistribute it and/or 
         | 
| 13 | 
            +
            ## modify it under the terms of the GNU Lesser General Public 
         | 
| 14 | 
            +
            ## License version 2.1 as published by the Free Software Foundation 
         | 
| 15 | 
            +
            ## and appearing in the file LICENSE.LGPL included in the packaging 
         | 
| 16 | 
            +
            ## of this file. 
         | 
| 17 | 
            +
            ## 
         | 
| 18 | 
            +
            ############################################################################
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            module MobyBehaviour
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              module QT
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                # == description
         | 
| 25 | 
            +
                # Events specific behaviours
         | 
| 26 | 
            +
                #
         | 
| 27 | 
            +
                # == behaviour
         | 
| 28 | 
            +
                # QtEvents
         | 
| 29 | 
            +
                #
         | 
| 30 | 
            +
                # == requires
         | 
| 31 | 
            +
                # testability-driver-qt-sut-plugin
         | 
| 32 | 
            +
                #
         | 
| 33 | 
            +
                # == input_type
         | 
| 34 | 
            +
                # *
         | 
| 35 | 
            +
                #
         | 
| 36 | 
            +
                # == sut_type
         | 
| 37 | 
            +
                # qt
         | 
| 38 | 
            +
                #
         | 
| 39 | 
            +
                # == sut_version
         | 
| 40 | 
            +
                # *
         | 
| 41 | 
            +
                #
         | 
| 42 | 
            +
                # == objects
         | 
| 43 | 
            +
                # *;application
         | 
| 44 | 
            +
                #
         | 
| 45 | 
            +
                module Events
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                  include MobyBehaviour::QT::Behaviour
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                  # == description
         | 
| 50 | 
            +
                  # Enable event listening. You can specify which events you want to listen for by including the names of 
         | 
| 51 | 
            +
                  # those events separated by comma or integers if using user events. Use ALL if you want to listen for all 
         | 
| 52 | 
            +
                  # events but be aware that there will be a lot of events.
         | 
| 53 | 
            +
                  # \n
         | 
| 54 | 
            +
                  # The events listened need to be sent the object to which the enabling is done for e.g. sut.button.enable_events('ALL') 
         | 
| 55 | 
            +
                  # would listen to all events sent to the button. When disabling or getting the events the operation must be done to the same object.
         | 
| 56 | 
            +
                  #
         | 
| 57 | 
            +
                  # == arguments
         | 
| 58 | 
            +
                  # filter_array
         | 
| 59 | 
            +
                  #  Array
         | 
| 60 | 
            +
                  #   description: Array of the event named to listen
         | 
| 61 | 
            +
                  #   example: ["Timer","MouseButtonPress","45677","67889"]
         | 
| 62 | 
            +
                  #
         | 
| 63 | 
            +
                  # params
         | 
| 64 | 
            +
                  #  Hash
         | 
| 65 | 
            +
                  #   description: -
         | 
| 66 | 
            +
                  #   example: -
         | 
| 67 | 
            +
                  #  
         | 
| 68 | 
            +
                  # == returns
         | 
| 69 | 
            +
                  # NilClass
         | 
| 70 | 
            +
                  #   description: -
         | 
| 71 | 
            +
                  #   example: -
         | 
| 72 | 
            +
                  #
         | 
| 73 | 
            +
                  # == exceptions
         | 
| 74 | 
            +
                  # Exception
         | 
| 75 | 
            +
                  #  description: In case of an error
         | 
| 76 | 
            +
                  #    
         | 
| 77 | 
            +
                  def enable_events(filter_array = nil, params = {})
         | 
| 78 | 
            +
             | 
| 79 | 
            +
                    begin
         | 
| 80 | 
            +
             | 
| 81 | 
            +
                      command = plugin_command #in qt_behaviour 
         | 
| 82 | 
            +
                      command.command_name( 'EnableEvents' )
         | 
| 83 | 
            +
                      params_str = ''
         | 
| 84 | 
            +
                      filter_array.each {|value| params_str << value << ','} if filter_array
         | 
| 85 | 
            +
                      params['EventsToListen'] = params_str
         | 
| 86 | 
            +
                      command.command_params( params )
         | 
| 87 | 
            +
                      command.service( 'collectEvents' ) 
         | 
| 88 | 
            +
                      @sut.execute_command( command)
         | 
| 89 | 
            +
                      @@_events_enabled = true
         | 
| 90 | 
            +
             | 
| 91 | 
            +
                    rescue
         | 
| 92 | 
            +
             | 
| 93 | 
            +
                      $logger.behaviour "FAIL;Failed enable_events with refresh \"#{filter_array.to_s}\".;#{ identity };enable_events;"
         | 
| 94 | 
            +
                      raise $!
         | 
| 95 | 
            +
             | 
| 96 | 
            +
                    end
         | 
| 97 | 
            +
             | 
| 98 | 
            +
                    $logger.behaviour "PASS;Operation enable_events executed successfully with refresh \"#{ filter_array.to_s }\".;#{ identity };enable_events;"
         | 
| 99 | 
            +
             | 
| 100 | 
            +
                    nil
         | 
| 101 | 
            +
             | 
| 102 | 
            +
                  end
         | 
| 103 | 
            +
             | 
| 104 | 
            +
                  # == description
         | 
| 105 | 
            +
                  # Disables event listening on the target
         | 
| 106 | 
            +
                  #
         | 
| 107 | 
            +
                  # == returns
         | 
| 108 | 
            +
                  # NilClass
         | 
| 109 | 
            +
                  #   description: -
         | 
| 110 | 
            +
                  #   example: -
         | 
| 111 | 
            +
                  #
         | 
| 112 | 
            +
                  # == exceptions
         | 
| 113 | 
            +
                  # Exception
         | 
| 114 | 
            +
                  #  description: In case of an error
         | 
| 115 | 
            +
                  #    
         | 
| 116 | 
            +
                  def disable_events
         | 
| 117 | 
            +
             | 
| 118 | 
            +
                    begin
         | 
| 119 | 
            +
                    
         | 
| 120 | 
            +
                      command = plugin_command #in qt_behaviour
         | 
| 121 | 
            +
                      command.command_name( 'DisableEvents' )
         | 
| 122 | 
            +
                      command.service( 'collectEvents' )
         | 
| 123 | 
            +
                      @sut.execute_command( command)
         | 
| 124 | 
            +
                      @@_events_enabled = false
         | 
| 125 | 
            +
                      
         | 
| 126 | 
            +
                    rescue
         | 
| 127 | 
            +
                    
         | 
| 128 | 
            +
                      $logger.behaviour "FAIL;Failed disable_events.;#{ identity };disable_events;"
         | 
| 129 | 
            +
                      
         | 
| 130 | 
            +
                      raise $!
         | 
| 131 | 
            +
                      
         | 
| 132 | 
            +
                    end 
         | 
| 133 | 
            +
             | 
| 134 | 
            +
                    $logger.behaviour "PASS;Operation disable_events executed successfully.;#{ identity };disable_events;"
         | 
| 135 | 
            +
             | 
| 136 | 
            +
                    nil
         | 
| 137 | 
            +
             | 
| 138 | 
            +
                  end
         | 
| 139 | 
            +
             | 
| 140 | 
            +
                  # == description
         | 
| 141 | 
            +
                  # Gets event list occured since the enabling of events. The format of the XML string is the same as with the UI state.
         | 
| 142 | 
            +
                  # \n
         | 
| 143 | 
            +
                  # 
         | 
| 144 | 
            +
                  # [b]NOTE:[/b]
         | 
| 145 | 
            +
                  # It is highly recommended to create a StateObject with result XML and access the data through appropriate API.
         | 
| 146 | 
            +
                  # \n
         | 
| 147 | 
            +
                  # 
         | 
| 148 | 
            +
                  # See state_object method for more details.
         | 
| 149 | 
            +
                  #
         | 
| 150 | 
            +
                  # == returns
         | 
| 151 | 
            +
                  # String
         | 
| 152 | 
            +
                  #  description: XML containing the details of the events logger since enable_events
         | 
| 153 | 
            +
                  #  example: -
         | 
| 154 | 
            +
                  #
         | 
| 155 | 
            +
                  # == exceptions
         | 
| 156 | 
            +
                  # Exception
         | 
| 157 | 
            +
                  #  description: In case of an error
         | 
| 158 | 
            +
                  #    
         | 
| 159 | 
            +
                  def get_events
         | 
| 160 | 
            +
                  
         | 
| 161 | 
            +
                    ret = nil
         | 
| 162 | 
            +
             | 
| 163 | 
            +
                    begin
         | 
| 164 | 
            +
             | 
| 165 | 
            +
                      command = plugin_command(true) #in qt_behaviour 
         | 
| 166 | 
            +
                      command.command_name( 'GetEvents' )
         | 
| 167 | 
            +
                      command.service( 'collectEvents' )
         | 
| 168 | 
            +
                      ret = @sut.execute_command( command)
         | 
| 169 | 
            +
                      # TODO: how to parse the output?
         | 
| 170 | 
            +
             | 
| 171 | 
            +
                    rescue
         | 
| 172 | 
            +
             | 
| 173 | 
            +
                      $logger.behaviour "FAIL;Failed get_events.;#{ identity };get_events;"
         | 
| 174 | 
            +
                      
         | 
| 175 | 
            +
                      raise $!
         | 
| 176 | 
            +
                
         | 
| 177 | 
            +
                    end
         | 
| 178 | 
            +
             | 
| 179 | 
            +
                    $logger.behaviour "PASS;Operation get_events executed successfully.;#{ identity };get_events;"
         | 
| 180 | 
            +
                    
         | 
| 181 | 
            +
                    ret
         | 
| 182 | 
            +
                    
         | 
| 183 | 
            +
                  end
         | 
| 184 | 
            +
             | 
| 185 | 
            +
                  # enable hooking for performance measurement & debug logging
         | 
| 186 | 
            +
                  TDriver::Hooking.hook_methods( self ) if defined?( TDriver::Hooking )
         | 
| 187 | 
            +
             | 
| 188 | 
            +
                end # EventsBehaviour
         | 
| 189 | 
            +
             | 
| 190 | 
            +
              end
         | 
| 191 | 
            +
             | 
| 192 | 
            +
            end # MobyBase
         |