Exemplo n.º 1
0
def _DownloadTraceHandles(url, temp_directory):
  trace_urls = _ReadTracesGCSFile(url)

  trace_handles = []
  for trace_url in trace_urls:
    run_info = run_info_module.RunInfo(
        url=trace_url,
        display_name=trace_url,
        run_id=trace_url)

    th = gcs_trace_handle.GCSTraceHandle(run_info, temp_directory)
    trace_handles.append(th)
  return trace_handles
Exemplo n.º 2
0
    def testFailure(self):
        run_info = run_info_module.RunInfo('file:///a.json',
                                           '/a.json',
                                           metadata={'m': 1})

        d = {
            'run_id': run_info.run_id,
            'type': 'failure',
            'name': 'Error',
            'important': False,
            'description': 'Some error message',
            'stack_str': 'Some stack string'
        }
        v = value_module.Value.FromDict(run_info, d)
        self.assertTrue(isinstance(v, value_module.FailureValue))
        d2 = v.AsDict()

        self.assertEquals(d, d2)
Exemplo n.º 3
0
    def testDict(self):
        run_info = run_info_module.RunInfo('file:///a.json',
                                           '/a.json',
                                           metadata={'m': 1})
        d = {
            'run_id': run_info.run_id,
            'type': 'dict',
            'name': 'MyDictValue',
            'important': False,
            'value': {
                'a': 1,
                'b': 'b'
            }
        }
        v = value_module.Value.FromDict(run_info, d)
        self.assertTrue(isinstance(v, value_module.DictValue))
        d2 = v.AsDict()

        self.assertEquals(d, d2)
  def GetTraceHandlesMatchingQuery(self, query):
    trace_handles = []

    query_string = urllib.quote_plus(query.AsQueryString())
    response = urllib2.urlopen(
        '%s/query?q=%s' % (self.server, query_string))
    file_urls = json.loads(response.read())

    for file_url in file_urls:
      run_info = run_info_module.RunInfo(
          url=file_url,
          display_name=file_url,
          run_id=file_url)

      th = gcs_trace_handle.GCSTraceHandle(
          run_info, self.directory)
      trace_handles.append(th)

    return trace_handles
    def testTraceDidntImport(self):
        run_info = run_info_module.RunInfo('file:///a.json',
                                           '/a.json',
                                           metadata={'m': 1})
        trace_string = 'This is intentionally not a trace-formatted string.'
        trace_handle = in_memory_trace_handle.InMemoryTraceHandle(
            run_info, trace_string)

        results = results_module.Results()
        with map_single_trace.TemporaryMapScript("""
      pi.MapFunction.register(function MyMapFunction(results, run_info, model) {
      });
    """) as map_script:
            map_single_trace.MapSingleTrace(results, trace_handle,
                                            map_script.filename)

        self.assertEquals(len(results.all_values), 1)
        v = results.all_values[0]
        self.assertIsInstance(v, map_single_trace.TraceImportErrorValue)
    def testMapperSkips(self):
        run_info = run_info_module.RunInfo('file:///a.json',
                                           '/a.json',
                                           metadata={'m': 1})
        events = [{
            'pid': 1,
            'tid': 2,
            'ph': 'X',
            'name': 'a',
            'cat': 'c',
            'ts': 0,
            'dur': 10,
            'args': {}
        }, {
            'pid': 1,
            'tid': 2,
            'ph': 'X',
            'name': 'b',
            'cat': 'c',
            'ts': 3,
            'dur': 5,
            'args': {}
        }]
        trace_handle = in_memory_trace_handle.InMemoryTraceHandle(
            run_info, json.dumps(events))

        results = results_module.Results()
        with map_single_trace.TemporaryMapScript("""
      pi.MapFunction.register(function MyMapFunction(results, run_info, model) {
        results.addValue(new pi.v.SkipValue(
            run_info, 'SkippedFieldName',
            {description: 'SkippedReason'}));

      });
    """) as map_script:
            map_single_trace.MapSingleTrace(results, trace_handle,
                                            map_script.filename)

        self.assertEquals(len(results.all_values), 1)
        v = results.all_values[0]
        self.assertIsInstance(v, value_module.SkipValue)
        self.assertEquals(v.name, 'SkippedFieldName')
        self.assertEquals(v.description, 'SkippedReason')
Exemplo n.º 7
0
    def GetTraceHandlesMatchingQuery(self, query):
        trace_handles = []

        files = _GetFilesIn(self.directory)
        for rel_filename in files:
            filename = os.path.join(self.directory, rel_filename)
            metadata = _GetMetadataForFilename(self.directory, filename)

            if not query.Eval(metadata):
                continue

            run_info = run_info_module.RunInfo(url="file://%s" % filename,
                                               display_name=rel_filename,
                                               metadata=metadata)

            th = local_file_trace_handle.LocalFileTraceHandle(
                run_info, filename)
            trace_handles.append(th)

        return trace_handles
    def testPassingMapScript(self):
        run_info = run_info_module.RunInfo('file:///a.json',
                                           '/a.json',
                                           metadata={'m': 1})
        events = [{
            'pid': 1,
            'tid': 2,
            'ph': 'X',
            'name': 'a',
            'cat': 'c',
            'ts': 0,
            'dur': 10,
            'args': {}
        }, {
            'pid': 1,
            'tid': 2,
            'ph': 'X',
            'name': 'b',
            'cat': 'c',
            'ts': 3,
            'dur': 5,
            'args': {}
        }]
        trace_handle = in_memory_trace_handle.InMemoryTraceHandle(
            run_info, json.dumps(events))

        results = results_module.Results()
        with map_single_trace.TemporaryMapScript("""
      pi.MapFunction.register(function MyMapFunction(results, run_info, model) {
        results.addValue(new pi.v.DictValue(
            run_info,
            'result', {
              numProcesses: model.getAllProcesses().length
            }));
      });
    """) as map_script:
            map_single_trace.MapSingleTrace(results, trace_handle,
                                            map_script.filename)

        v = results.FindValueNamed('result')
        self.assertEquals(v['numProcesses'], 1)
    def testMapFunctionThatThrows(self):
        run_info = run_info_module.RunInfo('file:///a.json',
                                           '/a.json',
                                           metadata={'m': 1})
        events = [{
            'pid': 1,
            'tid': 2,
            'ph': 'X',
            'name': 'a',
            'cat': 'c',
            'ts': 0,
            'dur': 10,
            'args': {}
        }, {
            'pid': 1,
            'tid': 2,
            'ph': 'X',
            'name': 'b',
            'cat': 'c',
            'ts': 3,
            'dur': 5,
            'args': {}
        }]
        trace_handle = in_memory_trace_handle.InMemoryTraceHandle(
            run_info, json.dumps(events))

        results = results_module.Results()
        with map_single_trace.TemporaryMapScript("""
      pi.MapFunction.register(function MyMapFunction(results, run_info, model) {
        throw new Error('Expected error');
      });
    """) as map_script:
            map_single_trace.MapSingleTrace(results, trace_handle,
                                            map_script.filename)

        self.assertEquals(len(results.all_values), 1)
        v = results.all_values[0]
        self.assertIsInstance(v, map_single_trace.MapFunctionErrorValue)
Exemplo n.º 10
0
    def GetTraceHandlesMatchingQuery(self, query):
        trace_handles = []

        files = _GetFilesIn(self.directory)
        for rel_filename in files:
            filename = os.path.join(self.directory, rel_filename)
            metadata = _GetMetadataForFilename(self.directory, filename)

            if not query.Eval(metadata, len(trace_handles)):
                continue

            # Make URL relative to server root.
            url = self.url_resolver(filename)
            if url is None:
                url = _DefaultUrlResover(filename)
            run_info = run_info_module.RunInfo(url=url,
                                               display_name=rel_filename,
                                               metadata=metadata)

            th = local_file_trace_handle.LocalFileTraceHandle(
                run_info, filename)
            trace_handles.append(th)

        return trace_handles
    def testNoMapper(self):
        run_info = run_info_module.RunInfo('file:///a.json',
                                           '/a.json',
                                           metadata={'m': 1})
        events = [{
            'pid': 1,
            'tid': 2,
            'ph': 'X',
            'name': 'a',
            'cat': 'c',
            'ts': 0,
            'dur': 10,
            'args': {}
        }, {
            'pid': 1,
            'tid': 2,
            'ph': 'X',
            'name': 'b',
            'cat': 'c',
            'ts': 3,
            'dur': 5,
            'args': {}
        }]
        trace_handle = in_memory_trace_handle.InMemoryTraceHandle(
            run_info, json.dumps(events))

        results = results_module.Results()
        with map_single_trace.TemporaryMapScript("""
    """) as map_script:
            map_single_trace.MapSingleTrace(results, trace_handle,
                                            map_script.filename)

        self.assertEquals(len(results.all_values), 1)
        v = results.all_values[0]
        self.assertIsInstance(v,
                              map_single_trace.MapFunctionNotDefinedErrorValue)