/[eiffelstudio]/branches/eth/eve/Src/framework/auto_test/proxy/aut_online_statistics.e
ViewVC logotype

Diff of /branches/eth/eve/Src/framework/auto_test/proxy/aut_online_statistics.e

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 86349 by jasonw, Tue Apr 26 14:23:56 2011 UTC revision 86350 by jasonw, Thu Apr 28 11:47:15 2011 UTC
# Line 24  feature{NONE} -- Initialization Line 24  feature{NONE} -- Initialization
24                          failing_statistics.set_key_equality_tester (create {AUT_FEATURE_OF_TYPE_EQUALITY_TESTER}.make)                          failing_statistics.set_key_equality_tester (create {AUT_FEATURE_OF_TYPE_EQUALITY_TESTER}.make)
25                          create faults.make (64)                          create faults.make (64)
26                          faults.set_key_equality_tester (create {AUT_EXCEPTION_EQUALITY_TESTER})                          faults.set_key_equality_tester (create {AUT_EXCEPTION_EQUALITY_TESTER})
27                            create faults_with_detected_time.make (64)
28                            faults_with_detected_time.set_key_equality_tester (create {AUT_EXCEPTION_EQUALITY_TESTER})
29                  end                  end
30    
31  feature -- Access  feature -- Access
# Line 43  feature -- Access Line 45  feature -- Access
45                          -- Keys are faults that are found, values are                          -- Keys are faults that are found, values are
46                          -- meta data (if any) associated with that fault.                          -- meta data (if any) associated with that fault.
47    
48            faults_with_detected_time: DS_HASH_TABLE [INTEGER, AUT_EXCEPTION]
49                            -- Set of detected faults and the number of times that they are detected
50                            -- Keys are the detected faults, and values are the number of times that
51                            -- they are detected.
52    
53          last_fault_meta: detachable STRING          last_fault_meta: detachable STRING
54                          -- Meta data which will be associated with each found fault                                              -- Meta data which will be associated with each found fault                    
55    
# Line 117  feature -- Basic operations Line 124  feature -- Basic operations
124                                                                          l_class := workbench.universe.classes_with_name (l_exception.class_name).first.compiled_representation                                                                          l_class := workbench.universe.classes_with_name (l_exception.class_name).first.compiled_representation
125                                                                          l_feat := l_class.feature_named_32 (l_exception.recipient_name)                                                                          l_feat := l_class.feature_named_32 (l_exception.recipient_name)
126                                                                          if l_feat /= Void then                                                                          if l_feat /= Void then
127                                                                                  if not faults.has (l_exception) then                                                                                  if faults.has (l_exception) then
128                                                                                                    -- We already detected this fault before.
129                                                                                            faults_with_detected_time.force_last (faults_with_detected_time.item (l_exception) + 1, l_exception)
130                                                                                    else
131                                                                                                    -- We detected a new fault.
132                                                                                          faults.force_last (last_fault_meta, l_exception)                                                                                          faults.force_last (last_fault_meta, l_exception)
133                                                                                          last_minute_statistics.set_fault_count (last_minute_statistics.fault_count + 1)                                                                                          last_minute_statistics.set_fault_count (last_minute_statistics.fault_count + 1)
134                                                                                            faults_with_detected_time.force_last (1, l_exception)
135                                                                                  end                                                                                  end
136                                                                                  create l_feature.make (l_feat, l_class.constraint_actual_type)                                                                                  create l_feature.make (l_feat, l_class.constraint_actual_type)
137                                                                                  failing_statistics.search (l_feature)                                                                                  failing_statistics.search (l_feature)
# Line 200  feature{NONE} -- Implementation Line 212  feature{NONE} -- Implementation
212                  do                  do
213                          if log_file = Void and then log_file_path /= Void then                          if log_file = Void and then log_file_path /= Void then
214                                  create log_file.make_create_read_write (log_file_path)                                  create log_file.make_create_read_write (log_file_path)
215                                  log_file.put_string ("Second%TPassing test cases%TFailing test cases%TInvalid test cases%TObjects%TFaults%TProxy sessions%N")                                  log_file.put_string ("Second%TPassing test cases%TFailing test cases%TInvalid test cases%TObjects%TFaults%TProxy sessions%TFault details%N")
216                          end                          end
217                          if log_file /= Void then                          if log_file /= Void then
218                                  create l_message.make (256)                                  create l_message.make (1024)
219                                  l_message.append_integer (last_time_stamp // 1000 + 1)                                  l_message.append_integer (last_time_stamp // 1000 + 1)
220                                  l_message.append_character ('%T')                                  l_message.append_character ('%T')
221                                  l_message.append (last_minute_statistics.out)                                  l_message.append (last_minute_statistics.out)
222    
223                                    l_message.append_character ('%T')
224                                    l_message.append (fault_details)
225                                  l_message.append_character ('%N')                                  l_message.append_character ('%N')
226                                  log_file.put_string (l_message)                                  log_file.put_string (l_message)
227                                  log_file.flush                                  log_file.flush
228                          end                          end
229                  end                  end
230    
231            fault_details: STRING
232                            -- String containing details of detected faults.                        
233                    local
234                            l_cursor: DS_HASH_TABLE_CURSOR [INTEGER, AUT_EXCEPTION]
235                    do
236                            create Result.make (faults_with_detected_time.count * 64)
237                            from
238                                    l_cursor := faults_with_detected_time.new_cursor
239                                    l_cursor.start
240                            until
241                                    l_cursor.after
242                            loop
243                                    if not Result.is_empty then
244                                            Result.append_character (',')
245                                    end
246                                    Result.append (l_cursor.key.signature)
247                                    Result.append_character ('(')
248                                    Result.append_integer (l_cursor.item)
249                                    Result.append_character (')')
250                                    l_cursor.forth
251                            end
252                    end
253    
254  note  note
255          copyright: "Copyright (c) 1984-2011, Eiffel Software"          copyright: "Copyright (c) 1984-2011, Eiffel Software"
256          license: "GPL version 2 (see http://www.eiffel.com/licensing/gpl.txt)"          license: "GPL version 2 (see http://www.eiffel.com/licensing/gpl.txt)"

Legend:
Removed from v.86349  
changed lines
  Added in v.86350

  ViewVC Help
Powered by ViewVC 1.1.23