]> rtime.felk.cvut.cz Git - linux-conf-perf.git/commitdiff
Fix generate single configuration
authorKarel Kočí <cynerd@email.cz>
Thu, 13 Aug 2015 09:42:51 +0000 (11:42 +0200)
committerKarel Kočí <cynerd@email.cz>
Thu, 13 Aug 2015 09:42:51 +0000 (11:42 +0200)
This fixes and ensures that every call generates configuration. Unless
False is returned.

scripts/configurations.py

index 0b73a5343a0a44f8090b205d459541930b0a53bb..a9ede0538b66a541f1492ee33b385bb41c1a6815 100644 (file)
@@ -167,21 +167,22 @@ def __generate_single__(var_num, conf_num):
        else:
                with open(sf(conf.single_generated_file), 'r') as f:
                        for ln in f:
-                               measure_list.append(int(ln))
-       if measure_list:
+                               measure_list.add(int(ln))
+       if not measure_list:
                return False
        tfile = __buildtempcnf__(var_num, (sf(conf.rules_file),
                sf(conf.fixed_file)), (str(measure_list.pop())))
+       with open(sf(conf.single_generated_file), 'w') as fo:
+               fo.writelines(measure_list)
        try:
                confs = __exec_sat__(tfile, ['-i', '0'])
                for con in confs:
                        __register_conf__(con, conf_num, 'single-sat')
        except exceptions.NoSolution:
-               pass
+               os.remove(tfile)
+               return __generate_single__(var_num, conf_num)
        finally:
                os.remove(tfile)
-       with open(sf(conf.single_generated_file), 'w') as fo:
-               fo.writelines(measure_list)
        return True
 
 def __generate_random__(var_num, conf_num):