From fc1368b3421171467d5925537b271091215f74f4 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Tue, 7 May 2019 12:18:37 +0200 Subject: Protolog: Handle codegen failure --- lib/data_parameters.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/data_parameters.py b/lib/data_parameters.py index fd78079..4dde850 100644 --- a/lib/data_parameters.py +++ b/lib/data_parameters.py @@ -204,10 +204,14 @@ class Protolog: arch_lib, benchmark, benchmark_item, aggregate_label, subv[data_label]['v'], str(e))) pass - codegen = codegen_for_lib(lib, libopts.split(','), subv['data']) - if codegen.max_serialized_bytes != None: - self.add_datapoint(arch, library, (benchmark, benchmark_item), subv, 'buffer_size', data_label, lambda x: codegen.max_serialized_bytes) - else: + try: + codegen = codegen_for_lib(lib, libopts.split(','), subv['data']) + if codegen.max_serialized_bytes != None: + self.add_datapoint(arch, library, (benchmark, benchmark_item), subv, 'buffer_size', data_label, lambda x: codegen.max_serialized_bytes) + else: + self.add_datapoint(arch, library, (benchmark, benchmark_item), subv, 'buffer_size', data_label, lambda x: 0) + except: + # avro's codegen will raise RuntimeError("Unsupported Schema") on unsupported data. Other libraries may just silently ignore it. self.add_datapoint(arch, library, (benchmark, benchmark_item), subv, 'buffer_size', data_label, lambda x: 0) #self.aggregate[(benchmark, benchmark_item)][arch][lib][aggregate_label] = getter(value[data_label]['v']) -- cgit v1.2.3