Skip to content

Commit

Permalink
Add covmanager report and reportconfiguration objects to test data
Browse files Browse the repository at this point in the history
  • Loading branch information
jschwartzentruber committed Dec 16, 2024
1 parent 6fc0a3d commit b32c048
Showing 1 changed file with 146 additions and 26 deletions.
172 changes: 146 additions & 26 deletions server/crashmanager/management/commands/create_test_data.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import json
from base64 import b64encode
from copy import deepcopy
from datetime import timedelta
from pathlib import Path
from random import choice, randint
Expand All @@ -12,7 +14,13 @@
from notifications.models import Notification
from notifications.signals import notify

from covmanager.models import Collection, CollectionFile, Repository
from covmanager.models import (
Collection,
CollectionFile,
Report,
ReportConfiguration,
Repository,
)
from crashmanager.models import (
OS,
Bucket,
Expand All @@ -29,6 +37,7 @@
Tool,
User,
)
from FTB.CoverageHelper import calculate_summary_fields, merge_coverage_data
from taskmanager.models import Pool, Task


Expand Down Expand Up @@ -168,6 +177,89 @@ def slug():
return b64encode(raw, altchars=b"-_").decode()[:22]


COV_DATA_1 = {
"children": {
"a": {
"children": {
"test.c": {
"coverage": [-1, -1, 1, 1, 1, 1, 0, -1, 1],
"name": "test.c",
}
},
"name": "a",
},
"b": {
"children": {
"testb.c": {
"coverage": [-1, -1, 1, 1, 1],
"name": "testb.c",
}
},
"name": "b",
},
"main.c": {
"coverage": [-1, -1, -1, -1, -1, -1, -1, 1, 1, 1, -1, 1, -1, 2],
"name": "main.c",
},
},
}
calculate_summary_fields(COV_DATA_1)
COV_DATA_2 = {
"children": {
"a": {
"children": {
"test.c": {
"coverage": [-1, -1, 1, 1, 1, 1, 1, -1, 1],
"name": "test.c",
}
},
"name": "a",
},
"b": {
"children": {
"testb.c": {
"coverage": [-1, -1, 1, 1, 1],
"name": "testb.c",
}
},
"name": "b",
},
"main.c": {
"coverage": [-1, -1, -1, -1, -1, -1, -1, 2, 1, 1, 1, -1, 1, -1, 2],
"name": "main.c",
},
},
}
calculate_summary_fields(COV_DATA_2)
COV_DATA_3 = {
"children": {
"a": {
"children": {
"test.c": {
"coverage": [-1, -1, 1, 1, 1, 1, 1, -1, 1],
"name": "test.c",
}
},
"name": "a",
},
"b": {
"children": {
"testb.c": {
"coverage": [-1, -1, 1, 1, 1],
"name": "testb.c",
}
},
"name": "b",
},
"main.c": {
"coverage": [-1, -1, -1, -1, -1, -1, -1, 1, 2, 1, 1, -1, 1, -1, 2],
"name": "main.c",
},
},
}
calculate_summary_fields(COV_DATA_3)


class Command(BaseCommand):
help = "Create test data for UI testing (requires empty DB)"

Expand Down Expand Up @@ -257,32 +349,18 @@ def handle(self, *_args, **options):
Path("/data/coverage/coverage").mkdir(parents=True, exist_ok=True)
Path(
"/data/coverage/coverage/0f87343595e8908a2989ca7716f71502bf288c72.coverage"
).write_text(
'{"children":{"a":{"children":{"test.c":{"coverage":[-1,-1,1,1,1,1,0,-1,1],'
'"name":"test.c","linesTotal":6,"linesCovered":5,"linesMissed":1,"coverageP'
'ercent":83.33}},"name":"a","linesTotal":6,"linesCovered":5,"linesMissed":1'
',"coveragePercent":83.33},"b":{"children":{"testb.c":{"coverage":[-1,-1,1,'
'1,1],"name":"testb.c","linesTotal":3,"linesCovered":3,"linesMissed":0,"cov'
'eragePercent":100.0}},"name":"b","linesTotal":3,"linesCovered":3,"linesMis'
'sed":0,"coveragePercent":100.0},"main.c":{"coverage":[-1,-1,-1,-1,-1,-1,-1'
',2,2,1,-1,1,-1,2],"name":"main.c","linesTotal":5,"linesCovered":5,"linesMi'
'ssed":0,"coveragePercent":100.0}},"name":null,"linesTotal":14,"linesCovere'
'd":13,"linesMissed":1,"coveragePercent":92.86}'
)
).write_text(json.dumps(COV_DATA_1))
Path(
"/data/coverage/coverage/58721097e138f17549dc129d7dcc44a0adebe218.coverage"
).write_text(
'{"children":{"a":{"children":{"test.c":{"coverage":[-1,-1,1,1,1,1,1,-1,1],'
'"name":"test.c","linesTotal":6,"linesCovered":6,"linesMissed":0,"coverageP'
'ercent":100.0}},"name":"a","linesTotal":6,"linesCovered":6,"linesMissed":0'
',"coveragePercent":100.0},"b":{"children":{"testb.c":{"coverage":[-1,-1,1,'
'1,1],"name":"testb.c","linesTotal":3,"linesCovered":3,"linesMissed":0,"cov'
'eragePercent":100.0}},"name":"b","linesTotal":3,"linesCovered":3,"linesMis'
'sed":0,"coveragePercent":100.0},"main.c":{"coverage":[-1,-1,-1,-1,-1,-1,-1'
',2,2,1,1,-1,1,-1,2],"name":"main.c","linesTotal":6,"linesCovered":6,"lines'
'Missed":0,"coveragePercent":100.0}},"name":null,"linesTotal":15,"linesCove'
'red":15,"linesMissed":0,"coveragePercent":100.0}'
)
).write_text(json.dumps(COV_DATA_2))
Path(
"/data/coverage/coverage/68721097e138f17549dc129d7dcc44a0adebe218.coverage"
).write_text(json.dumps(COV_DATA_3))
merged_covdata = deepcopy(COV_DATA_3)
merge_coverage_data(merged_covdata, COV_DATA_2)
Path(
"/data/coverage/coverage/78721097e138f17549dc129d7dcc44a0adebe218.coverage"
).write_text(json.dumps(merged_covdata))
call_command(
"setup_repository",
"cov-example",
Expand All @@ -291,7 +369,7 @@ def handle(self, *_args, **options):
)

repo = Repository.objects.get(name="cov-example")
Collection.objects.create(
initial_cov = Collection.objects.create(
branch="main",
client=client,
coverage=CollectionFile.objects.create(
Expand All @@ -313,6 +391,48 @@ def handle(self, *_args, **options):
repository=repo,
revision="adab95a85e138f792631f19d939dfd1102197acc",
)
Collection.objects.create(
branch="main",
client=client,
coverage=CollectionFile.objects.create(
file="coverage/68721097e138f17549dc129d7dcc44a0adebe218.coverage"
),
created="2024-11-21T22:48:41Z",
description="update #2",
repository=repo,
revision="adab95a85e138f792631f19d939dfd1102197acc",
)
agg = Collection.objects.create(
branch="main",
client=client,
coverage=CollectionFile.objects.create(
file="coverage/78721097e138f17549dc129d7dcc44a0adebe218.coverage"
),
created="2024-11-21T22:48:41Z",
description="Test aggregate",
repository=repo,
revision="adab95a85e138f792631f19d939dfd1102197acc",
)
Report.objects.create(
coverage=initial_cov,
)
Report.objects.create(
coverage=agg,
public=True,
)
rc1 = ReportConfiguration.objects.create(
description="Test configuration",
directives="+:*\n-:a/*",
public=True,
repository=repo,
)
ReportConfiguration.objects.create(
description="A",
directives="+:a/*",
logical_parent=rc1,
public=True,
repository=repo,
)

# create 250 unbucketed crashes
for _ in range(250):
Expand Down

0 comments on commit b32c048

Please sign in to comment.