def main()

in validate.py [0:0]


def main(args=None):
    if not args:
        parser = argparse.ArgumentParser()
        set_argparser(parser)
        args = parser.parse_args()

    if not os.path.isfile(args.input):
        print('the file (%s) not found' % args.input)
        exit(1)

    result = _damon_result.parse_damon_result(args.input, None)
    if not result:
        print('invalid')
        exit(1)

    if len(result.target_snapshots) == 0:
        print('target snapshots is zero')
        exit(1)

    for target in result.target_snapshots:
        for snapshot in result.target_snapshots[target]:
            aggr_interval_us = (snapshot.end_time - snapshot.start_time) / 1000
            assert_value_in_range(aggr_interval_us, args.aggr,
                    'aggregate interval')

            assert_value_in_range(len(snapshot.regions), args.nr_regions,
                    'nr_regions')

            for region in snapshot.regions:
                if region.start >= region.end:
                    print('wrong regiosn [%d, %d)' % (saddr, eaddr))
                    exit(1)

                assert_value_in_range(region.nr_accesses, args.nr_accesses,
                        'nr_accesses')