From: Carl Worth Date: Sat, 27 Jun 2020 14:55:09 +0000 (-0700) Subject: Add failing test case for a major match-voting bug X-Git-Url: https://git.cworth.org/git?p=lmno-server;a=commitdiff_plain;h=dccfff8883f2caaf2e9f63aa79ce918a70c08c59 Add failing test case for a major match-voting bug Specifically, the majority requirement for a word match to be considered succesful has been counting all registered players rather than only the players actually in the current game. In the degenerate case, having more inactive registered players than active would mean that no matches would ever be judged as valid even with unanimous voting. Obviously, this is a disastrous bug. The test case added here currently fails, (where one person voting should be considered a (non-strict) majority in a 2-person game). --- diff --git a/test b/test index 703f005..1a91c0e 100755 --- a/test +++ b/test @@ -827,9 +827,38 @@ result=$(echo $(empathy_scores alice)) test "$result" != "null" TEST_END +TEST_SUBSECTION "Non players don't affect judging requirements" + +TEST "Start 2-player game with 6 registered players" +empathy_reset +empathy_player_activate eric +empathy_player_activate fred +prompt_id=$(empathy_submit_prompt alice 4 "1 truth or dare" | jq .id) +empathy_start alice $prompt_id +empathy_answer alice $prompt_id '"truth"' >/dev/null +empathy_answer bob $prompt_id '"true"' >/dev/null +empathy_end_answers alice $prompt_id +empathy_end_answers bob $prompt_id +test "$?" = "0" +TEST_END + +TEST "1 player votes for a match" +empathy_judged alice $prompt_id '[["truth","true"]]' >/dev/null +result=$(empathy_judged bob $prompt_id '[]') +test "$result" = '{"valid":true}' +TEST_END + +TEST "Verify the match passed the vote" +# echo here is to strip newlines +result=$(echo $(empathy_scores_names_numbers alice)) +test "$result" = '"alice" 2 "bob" 2 "charlie" 0 "dale" 0 "eric" 0 "fred" 0' +TEST_END + pkill -P $alice_pid pkill -P $bob_pid pkill -P $charlie_pid pkill -P $dale_pid +pkill -P $eric_pid +pkill -P $fred_pid TEST_REPORT