Ejemplo n.º 1
0
    def testNoMapper(self):
        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 = file_handle.InMemoryFileHandle('/a.json',
                                                      json.dumps(events))

        with map_single_trace.TemporaryMapScript("""
    """) as map_script:
            result = map_single_trace.MapSingleTrace(
                trace_handle, _Handle(map_script.filename))

        self.assertEquals(len(result.failures), 1)
        self.assertEquals(len(result.pairs), 0)
        f = result.failures[0]
        self.assertIsInstance(f, map_single_trace.FunctionNotDefinedFailure)
Ejemplo n.º 2
0
    def testAsDict(self):
        result = mre_result.MreResult()

        with map_single_trace.TemporaryMapScript("""
      pi.FunctionRegistry.register(
          function MyMapFunction(result, model) {
            var canonicalUrl = model.canonicalUrl;
            result.addPair('result', {
                numProcesses: model.getAllProcesses().length
              });
          });
      """) as map_script:

            module = function_handle.ModuleToLoad(filename=map_script.filename)
            map_handle = function_handle.FunctionHandle(
                modules_to_load=[module], function_name='MyMapFunction')
            job = job_module.Job(map_handle, None)
            failure = failure_module.Failure(job, '2', '3', 'err', 'desc',
                                             'stack')
            result.AddFailure(failure)

            result.AddPair('foo', 'bar')

            result_dict = result.AsDict()

            self.assertEquals(result_dict['failures'], [failure.AsDict()])
            self.assertEquals(result_dict['pairs'], {'foo': 'bar'})
Ejemplo n.º 3
0
    def testMapperDoesntAddValues(self):
        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 = file_handle.InMemoryFileHandle('/a.json',
                                                      json.dumps(events))

        with map_single_trace.TemporaryMapScript("""
      pi.FunctionRegistry.register(
          function MyMapFunction(results, model) {
      });
    """) as map_script:
            result = map_single_trace.MapSingleTrace(
                trace_handle, _Handle(map_script.filename))

        self.assertEquals(len(result.failures), 1)
        self.assertEquals(len(result.pairs), 0)
        f = result.failures[0]
        self.assertIsInstance(f, map_single_trace.NoResultsAddedFailure)
  def testPassingMapScript(self):
    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 = file_handle.InMemoryFileHandle(
        '/a.json', json.dumps(events))

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

    self.assertFalse(results.failure_values)
    v = results.FindValueNamed('result')
    self.assertEquals(v['numProcesses'], 1)
  def testMapperSkips(self):
    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 = file_handle.InMemoryFileHandle(
        '/a.json', json.dumps(events))

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

      });
    """) as map_script:
      map_single_trace.MapSingleTrace(results, trace_handle,
                                      _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')
Ejemplo n.º 6
0
    def testTraceDidntImport(self):
        trace_string = 'This is intentionally not a trace-formatted string.'
        trace_handle = file_handle.InMemoryFileHandle('/a.json', trace_string)

        with map_single_trace.TemporaryMapScript("""
      pi.FunctionRegistry.register(
          function MyMapFunction(results, model) {
          });
    """) as map_script:
            result = map_single_trace.MapSingleTrace(
                trace_handle, _Handle(map_script.filename))

        self.assertEquals(len(result.failures), 1)
        self.assertEquals(len(result.pairs), 0)
        f = result.failures[0]
        self.assertIsInstance(f, map_single_trace.TraceImportFailure)
  def testTraceDidntImport(self):
    trace_string = 'This is intentionally not a trace-formatted string.'
    trace_handle = file_handle.InMemoryFileHandle(
        '/a.json', trace_string)

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

    self.assertEquals(len(results.all_values), 1)
    v = results.all_values[0]
    self.assertIsInstance(v, map_single_trace.TraceImportErrorValue)
    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')
  def testNoMapper(self):
    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 = file_handle.InMemoryFileHandle(
        '/a.json', json.dumps(events))

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

    self.assertEquals(len(results.all_values), 1)
    v = results.all_values[0]
    self.assertIsInstance(v, map_single_trace.FunctionNotDefinedErrorValue)
    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)
Ejemplo n.º 13
0
    def testPassingMapScript(self):
        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 = file_handle.InMemoryFileHandle('/a.json',
                                                      json.dumps(events))

        with map_single_trace.TemporaryMapScript("""
      pi.FunctionRegistry.register(
          function MyMapFunction(result, model) {
            var canonicalUrl = model.canonicalUrlThatCreatedThisTrace;
            result.addPair('result', {
                numProcesses: model.getAllProcesses().length
              });
          });
    """) as map_script:
            result = map_single_trace.MapSingleTrace(
                trace_handle, _Handle(map_script.filename))

        self.assertFalse(result.failures)
        r = result.pairs['result']
        self.assertEquals(r['numProcesses'], 1)
  def testMapFunctionThatThrows(self):
    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 = file_handle.InMemoryFileHandle(
        '/a.json', json.dumps(events))

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

    self.assertEquals(len(results.all_values), 1)
    v = results.all_values[0]
    self.assertIsInstance(v, map_single_trace.MapFunctionErrorValue)
    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)