Debug prod server, apparently for the first time.

This commit is contained in:
Neale Pickett 2020-10-13 16:41:50 -06:00
parent 854ef771b4
commit b39e287e41
10 changed files with 27 additions and 324 deletions

View File

@ -50,8 +50,8 @@ func TestHttpd(t *testing.T) {
if r := hs.TestRequest("/state", nil); r.Result().StatusCode != 200 {
t.Error(r.Result())
} else if r.Body.String() != `{"Config":{"Devel":false},"Messages":"messages.html","TeamNames":{"self":""},"PointsLog":[],"Puzzles":{"pategory":[1]}}` {
t.Error("Unexpected state")
} else if r.Body.String() != `{"Config":{"Devel":false},"Messages":"messages.html","TeamNames":{"self":""},"PointsLog":[],"Puzzles":{}}` {
t.Error("Unexpected state", r.Body.String())
}
if r := hs.TestRequest("/register", map[string]string{"id": "bad team id", "name": "GoTeam"}); r.Result().StatusCode != 200 {

View File

@ -51,7 +51,7 @@ func (m *Mothballs) Open(cat string, points int, filename string) (ReadSeekClose
return nil, time.Time{}, fmt.Errorf("No such category: %s", cat)
}
f, err := zc.Open(fmt.Sprintf("content/%d/%s", points, filename))
f, err := zc.Open(fmt.Sprintf("%d/%s", points, filename))
if err != nil {
return nil, time.Time{}, err
}

View File

@ -13,12 +13,12 @@ var testFiles = []struct {
}{
{"puzzles.txt", "1\n3\n2\n"},
{"answers.txt", "1 answer123\n1 answer456\n2 wat\n"},
{"content/1/puzzle.json", `{"name": "moo"}`},
{"content/1/moo.txt", `moo`},
{"content/2/puzzle.json", `{}`},
{"content/2/moo.txt", `moo`},
{"content/3/puzzle.json", `{}`},
{"content/3/moo.txt", `moo`},
{"1/puzzle.json", `{"name": "moo"}`},
{"1/moo.txt", `moo`},
{"2/puzzle.json", `{}`},
{"2/moo.txt", `moo`},
{"3/puzzle.json", `{}`},
{"3/moo.txt", `moo`},
}
func (m *Mothballs) createMothball(cat string) {

View File

@ -175,7 +175,8 @@ func (mh *MothRequestHandler) ExportState() *StateExport {
export := StateExport{}
export.Config = mh.Config
teamName, _ := mh.State.TeamName(mh.teamID)
teamName, err := mh.State.TeamName(mh.teamID)
registered := (err == nil)
export.Messages = mh.State.Messages()
export.TeamNames = map[string]string{"self": teamName}
@ -204,7 +205,7 @@ func (mh *MothRequestHandler) ExportState() *StateExport {
}
export.Puzzles = make(map[string][]int)
if _, ok := export.TeamNames["self"]; ok {
if registered {
// We used to hand this out to everyone,
// but then we got a bad reputation on some secretive blacklist,
// and now the Navy can't register for events.

View File

@ -34,6 +34,18 @@ func TestServer(t *testing.T) {
server := NewTestServer()
handler := server.NewHandler(participantID, teamID)
{
es := handler.ExportState()
if es.Config.Devel {
t.Error("Marked as development server", es.Config)
}
if len(es.Puzzles) != 0 {
t.Log("State", es)
t.Error("Unauthenticated state has non-empty puzzles list")
}
}
if err := handler.Register(teamName); err != nil {
t.Error(err)
}

View File

@ -81,7 +81,6 @@ func (t *T) ParseArgs() (Command, error) {
return nothing, err
}
if *directory != "" {
log.Println(*directory)
t.fs = afero.NewBasePathFs(t.BaseFs, *directory)
} else {
t.fs = t.BaseFs
@ -151,7 +150,7 @@ func (t *T) DumpMothball() error {
if t.filename == "" {
w = t.Stdout
} else {
log.Println("Writing to", t.filename, t.fs)
log.Println("Writing mothball to", t.filename)
outf, err := t.BaseFs.Create(t.filename)
if err != nil {
return err
@ -159,7 +158,6 @@ func (t *T) DumpMothball() error {
defer outf.Close()
w = outf
}
log.Println(t.fs)
if err := transpile.Mothball(c, w); err != nil {
return err
}

View File

@ -97,6 +97,7 @@ function renderPuzzles(obj) {
}
function renderState(obj) {
window.state = obj
devel = obj.Config.Devel
if (devel) {
let params = new URLSearchParams(window.location.search)

View File

@ -1,255 +0,0 @@
{
"__comment__": [
"This file is to help debug themes.",
"MOTHd will ignore it."
],
"teams": {
"0": "4HED Followers",
"1": "Dirtbags",
"17": "Eyeball",
"2": "Soup Giver!!!!!!!!!",
"24": "Dumb freshmans 3",
"25": "Winner",
"2d": "Cool team name",
"2f": "Dumm freshmans #1",
"4": "K19 the Widow Maker",
"5": "2T2",
"6": "Apples",
"7": "Top Minds",
"8": "DIRTBAGS",
"b": "Antiderivative of Pizza"
},
"points": [
[1573007086,"0","codebreaking",1],
[1573007096,"1","codebreaking",1],
[1573007114,"2","codebreaking",1],
[1573007153,"0","codebreaking",2],
[1573007159,"4","codebreaking",1],
[1573007169,"5","codebreaking",1],
[1573007181,"6","sequence",1],
[1573007184,"7","codebreaking",1],
[1573007209,"8","codebreaking",1],
[1573007212,"2","codebreaking",2],
[1573007240,"1","sequence",1],
[1573007244,"b","codebreaking",1],
[1573007246,"1","nocode",1],
[1573007258,"5","nocode",1],
[1573007271,"5","nocode",2],
[1573007284,"1","steg",1],
[1573007295,"7","codebreaking",2],
[1573007298,"2","codebreaking",4],
[1573007305,"5","nocode",3],
[1573007316,"7","codebreaking",4],
[1573007321,"0","codebreaking",4],
[1573007328,"5","nocode",4],
[1573007331,"7","nocode",1],
[1573007336,"17","codebreaking",1],
[1573007340,"7","nocode",2],
[1573007367,"0","nocode",10],
[1573007369,"7","nocode",3],
[1573007371,"b","nocode",1],
[1573007379,"7","nocode",4],
[1573007388,"b","nocode",2],
[1573007391,"6","sequence",2],
[1573007397,"4","codebreaking",2],
[1573007407,"b","nocode",3],
[1573007411,"7","nocode",10],
[1573007413,"5","nocode",10],
[1573007429,"b","nocode",4],
[1573007442,"24","codebreaking",2],
[1573007451,"25","codebreaking",1],
[1573007456,"7","sequence",1],
[1573007460,"b","nocode",10],
[1573007467,"5","sequence",1],
[1573007471,"7","sequence",2],
[1573007478,"5","sequence",2],
[1573007479,"17","codebreaking",2],
[1573007490,"2","codebreaking",5],
[1573007509,"2d","codebreaking",1],
[1573007536,"8","codebreaking",2],
[1573007544,"2f","codebreaking",1],
[1573007546,"b","sequence",1],
[1573007574,"24","codebreaking",4],
[1573007581,"b","sequence",2],
[1573007591,"25","codebreaking",2],
[1573007603,"8","codebreaking",4],
[1573007614,"0","nocode",20],
[1573007639,"4","codebreaking",4],
[1573007678,"6","codebreaking",1],
[1573007692,"8","nocode",1],
[1573007695,"24","codebreaking",5],
[1573007705,"7","codebreaking",5],
[1573007707,"8","nocode",2],
[1573007713,"17","nocode",1],
[1573007727,"17","nocode",2],
[1573007735,"8","nocode",3],
[1573007737,"b","steg",1],
[1573007739,"25","codebreaking",4],
[1573007749,"8","nocode",4],
[1573007757,"17","codebreaking",4],
[1573007768,"8","nocode",10],
[1573007795,"0","sequence",1],
[1573007799,"8","sequence",1],
[1573007816,"0","sequence",2],
[1573007822,"8","sequence",2],
[1573007834,"24","codebreaking",6],
[1573007853,"2d","codebreaking",2],
[1573007905,"1","codebreaking",2],
[1573007941,"4","codebreaking",5],
[1573007956,"1","codebreaking",4],
[1573007974,"6","codebreaking",2],
[1573007998,"17","sequence",1],
[1573008022,"b","codebreaking",4],
[1573008055,"24","sequence",2],
[1573008063,"6","codebreaking",4],
[1573008066,"2d","codebreaking",4],
[1573008074,"24","sequence",1],
[1573008099,"17","nocode",4],
[1573008101,"0","codebreaking",7],
[1573008108,"2d","nocode",1],
[1573008135,"24","nocode",30],
[1573008146,"1","codebreaking",5],
[1573008162,"2d","nocode",2],
[1573008174,"b","codebreaking",2],
[1573008191,"2","codebreaking",6],
[1573008234,"6","codebreaking",5],
[1573008240,"2","nocode",10],
[1573008291,"5","steg",1],
[1573008310,"6","nocode",1],
[1573008323,"2d","nocode",3],
[1573008327,"6","nocode",2],
[1573008330,"25","codebreaking",5],
[1573008334,"2f","codebreaking",2],
[1573008348,"6","nocode",3],
[1573008356,"2d","nocode",4],
[1573008362,"b","codebreaking",5],
[1573008364,"6","nocode",4],
[1573008364,"17","codebreaking",5],
[1573008371,"24","nocode",4],
[1573008385,"24","nocode",3],
[1573008390,"6","nocode",10],
[1573008397,"24","nocode",2],
[1573008400,"25","nocode",1],
[1573008402,"2d","nocode",10],
[1573008408,"24","nocode",1],
[1573008419,"25","nocode",2],
[1573008429,"24","steg",1],
[1573008437,"25","nocode",3],
[1573008451,"25","nocode",4],
[1573008479,"25","nocode",10],
[1573008502,"2d","sequence",1],
[1573008506,"17","codebreaking",6],
[1573008537,"2d","sequence",2],
[1573008649,"17","codebreaking",7],
[1573008668,"2f","codebreaking",4],
[1573008716,"1","codebreaking",6],
[1573008768,"8","steg",1],
[1573008808,"7","nocode",50],
[1573008817,"24","steg",2],
[1573008832,"2f","codebreaking",5],
[1573008890,"17","steg",1],
[1573008902,"b","steg",2],
[1573008932,"7","steg",1],
[1573008944,"24","steg",3],
[1573008978,"2","steg",1],
[1573009006,"24","steg",4],
[1573009032,"6","steg",1],
[1573009038,"b","steg",3],
[1573009052,"2d","codebreaking",5],
[1573009098,"b","steg",4],
[1573009122,"8","steg",2],
[1573009125,"4","nocode",1],
[1573009160,"24","nocode",10],
[1573009161,"4","nocode",2],
[1573009179,"2","steg",2],
[1573009180,"1","steg",2],
[1573009194,"24","nocode",20],
[1573009203,"0","nocode",50],
[1573009212,"2f","codebreaking",6],
[1573009240,"2f","nocode",1],
[1573009250,"4","nocode",4],
[1573009255,"2f","nocode",2],
[1573009258,"2","steg",4],
[1573009282,"4","nocode",10],
[1573009299,"25","sequence",1],
[1573009305,"6","steg",4],
[1573009308,"17","steg",3],
[1573009310,"1","steg",3],
[1573009334,"7","steg",4],
[1573009345,"1","steg",4],
[1573009345,"7","steg",3],
[1573009354,"8","steg",4],
[1573009357,"25","sequence",2],
[1573009402,"6","steg",3],
[1573009402,"b","sequence",8],
[1573009413,"2f","nocode",3],
[1573009437,"17","steg",2],
[1573009455,"2f","nocode",10],
[1573009481,"b","sequence",16],
[1573009502,"b","sequence",19],
[1573009520,"b","sequence",25],
[1573009525,"17","steg",4],
[1573009559,"7","steg",2],
[1573009561,"b","sequence",35],
[1573009571,"0","sequence",35],
[1573009588,"25","steg",1],
[1573009602,"24","sequence",8],
[1573009607,"2","steg",5],
[1573009614,"1","steg",5],
[1573009617,"17","sequence",35],
[1573009620,"7","sequence",50],
[1573009621,"6","steg",5],
[1573009629,"5","steg",3],
[1573009632,"7","sequence",35],
[1573009644,"17","sequence",25],
[1573009670,"6","steg",6],
[1573009698,"8","steg",6],
[1573009700,"17","sequence",19],
[1573009703,"24","steg",6],
[1573009703,"4","sequence",1],
[1573009707,"0","sequence",50],
[1573009710,"25","steg",2],
[1573009729,"2f","sequence",1],
[1573009768,"1","steg",6],
[1573009814,"2","codebreaking",8],
[1573009842,"0","steg",1],
[1573009844,"2f","sequence",2],
[1573009882,"4","steg",1],
[1573009896,"25","steg",3],
[1573009931,"1","sequence",2],
[1573009937,"25","steg",4],
[1573010066,"7","steg",6],
[1573010101,"25","steg",5],
[1573010114,"5","steg",4],
[1573010137,"25","steg",6],
[1573010185,"4","sequence",2],
[1573010229,"17","nocode",80],
[1573010256,"24","sequence",35],
[1573010281,"6","codebreaking",7],
[1573010336,"25","codebreaking",6],
[1573010390,"7","codebreaking",7],
[1573010468,"2f","steg",1],
[1573010712,"0","steg",2],
[1573010739,"0","steg",3],
[1573010754,"0","steg",4],
[1573010778,"0","steg",5],
[1573010784,"7","nocode",90],
[1573010792,"0","steg",6],
[1573011760,"7","sequence",60],
[1573056120,"0","sequence",100],
[1573056324,"0","sequence",200],
[1573056791,"0","sequence",300],
[1573057092,"0","sequence",400],
[1573076767,"25","sequence",400],
[1573076809,"25","sequence",300],
[1573076838,"25","sequence",200],
[1573076936,"25","nocode",20],
[1573077275,"25","nocode",50],
[1573078364,"0","sequence",19],
[1573078432,"0","sequence",25],
[1573078487,"25","sequence",35],
[1573078501,"25","sequence",50],
[1573079359,"0","nocode",90],
[1573079714,"25","nocode",9]
]
}

View File

@ -132,7 +132,7 @@ async function loadPuzzle(categoryName, points, puzzleId) {
document.getElementById("authors").textContent = window.puzzle.Pre.Authors.join(", ")
// If answers are provided, this is the devel server
if (window.puzzle.Answers) {
if (window.puzzle.Answers.length > 0) {
devel_addin(document.getElementById("devel"))
}

View File

@ -1,54 +0,0 @@
{
"__comment__": [
"This file is to help debug themes.",
"MOTHd will ignore it."
],
"codebreaking": [
[1,"37117e6b034696b86c6516477cc0bc60bc1e642e"],
[2,"546b586428979771b061608489327da4940086a7"],
[4,"6f2a33c93f56b4f29cc79e6576ba4d1000aa1756"],
[5,"c654fe263909b1940d7aad8c572363a0569c07c6"],
[6,"f30bd32bf940f2bb03506ec334d2d204efc4695b"],
[7,"128b119083b6ae70c380a8eb70ec6a518425e7af"],
[8,"edd4f57aeb565b3b053fa194f5e677cb77ef0285"],
[15,"9781863bca9f596972e2a10460932ec5ec6be3fe"]
],
"nocode": [
[1,"37117e6b034696b86c6516477cc0bc60bc1e642e"],
[2,"546b586428979771b061608489327da4940086a7"],
[3,"79c08697a1923da1118fd0c2e922b5d3899cabcc"],
[4,"6f2a33c93f56b4f29cc79e6576ba4d1000aa1756"],
[10,"bf4fae263bf6e4243b143f4ecd64e471f3ec75dd"],
[20,"9f374f6dac9f972fac4693099a7bfa7c535f7503"],
[30,"02de1196d43976b2d050c6c597f068623d2df201"],
[50,"9acb3af947cb4aa10a9c1221c04518f956cdc0d0"],
[80,"78f807ac44f3cbf537861e7cdf1ac53937e4ee47"],
[90,"6d537653aa599178c72528f7e1f2fbb36e6333f9"],
[100,"4f5982a3a7cc9b9af0320130132e8cab39a1fd2c"]
],
"sequence": [
[1,"37117e6b034696b86c6516477cc0bc60bc1e642e"],
[2,"546b586428979771b061608489327da4940086a7"],
[8,"edd4f57aeb565b3b053fa194f5e677cb77ef0285"],
[16,"a9ace4b773f045c422260edefaa8563dcd80ac59"],
[19,"f11ca0172451f37ba6f4d66ff9add80013480a49"],
[25,"0458533d28705548829e53d686215cc6fbeec8f5"],
[35,"91aac06bae090ae7d1699b5a78601ef8d29e9271"],
[50,"9acb3af947cb4aa10a9c1221c04518f956cdc0d0"],
[60,"bf84beed9e382268ab40d0113dfeb73c96aa919a"],
[100,"4f5982a3a7cc9b9af0320130132e8cab39a1fd2c"],
[200,"3b9b8993fe639cf0c19a58b39ebbf6077828887a"],
[300,"0f13c4d19bc5d2e10d43e8cd2e40f759e731cece"],
[400,"db7a59f313818fc9598969d2a0a04e21bd26697f"],
[500,"81c5389eb5406aa44053662f6482f246b8a12e0c"]
],
"steg": [
[1,"200e8cd902ba7304765c463f6ed1322bc25f3454"],
[2,"707328988c3986d450d8fe419eb49f078fb7998c"],
[3,"d0b336ad59cbcd4415ddf200c6c099db5c3fea1d"],
[4,"f071503b403ffee2b38e186e800bfd5dd28e8f0e"],
[5,"186f425fa5762ef37f874cc602fe0edc4325a5d2"],
[6,"c6527c3c30c4e6a33026192d358d83d259cd17a7"],
[10,"84973f77a1b14e4666f3d8a8bdeead7633c4ed56"]
]
}