File: create_test.py

package info (click to toggle)
libcpuid 0.5.0%2Brepack1-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,496 kB
  • sloc: ansic: 5,734; python: 396; asm: 306; makefile: 93; cpp: 76; sh: 37
file content (60 lines) | stat: -rwxr-xr-x 1,798 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/env python2.7

import os, sys, re

args = sys.argv

if len(args) != 3:
	print "Usage: create_test.py <rawdata file> <report file>"
	print "The .test file is written to stdout."
	sys.exit(1)

def readRawFile():
	rawdata = []
	for line in open(args[1], "rt").readlines():
		lookfor = ["basic_cpuid", "ext_cpuid", "intel_fn4", "intel_fn11", "amd_fn8000001dh"]
		good = False
		for match in lookfor:
			if line.find(match) != -1:
				good = True
				break
		if good:
			rawdata.append(line.strip())
	return rawdata

def readResultFile():
	repdata = []
	rexp = re.compile('(-?[0-9]+).*')
	for line in open(args[2], "rt").readlines():
		s = line.strip()
		if s.find(":") == -1:
			continue
		numeric = ["family", "model", "stepping", "ext_family", "ext_model",
				"num_cores", "num_logical", "L1 D cache", "L1 I cache",
				"L2 cache", "L3 cache", "L4 cache", "L1D assoc.", "L1I assoc.",
				"L2 assoc.", "L3 assoc.", "L4 assoc.", "L1D line sz", "L1I line sz",
				"L2 line sz", "L3 line sz", "L4 line sz"]
		field = s[:s.find(":")].strip()
		if field in numeric:
			value = s[s.find(":")+1:].strip()
			if not rexp.match(value):
				raise "Bad format of value: [%s]" % s
			repdata.append(rexp.findall(value)[0])
		if field == "code name":
			value = s[s.find("`") + 1: s.find("'")]
			repdata.append(value)
		if field == "features":
			value = s[s.find(":") + 2:]
			repdata.append(value)
		if field == "SSE units":
			value = s[s.find(":") + 2:]
			# the value here is something like "XX bits (authoritative)". We remove the "bits" part:
			i = value.find("bits")
			if i != -1:
				value = value[:i] + value[i + 5:]
			repdata.append(value)
	return repdata

delimiter = "-" * 80
lines = readRawFile() + [delimiter] + readResultFile()
sys.stdout.writelines(map(lambda s: s + "\n", lines))