Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions kernelboard/api/leaderboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,15 @@ def _get_query():
AND r.score IS NOT NULL
AND r.passed
AND s.leaderboard_id = %(leaderboard_id)s
AND EXISTS (
SELECT 1
FROM leaderboard.runs sr
WHERE sr.submission_id = s.id
AND sr.secret
AND sr.runner = r.runner
AND sr.mode = 'leaderboard'
AND sr.passed
)
AND NOT EXISTS (
SELECT 1
FROM leaderboard.runs sr
Expand Down Expand Up @@ -259,6 +268,15 @@ def get_custom_trend(leaderboard_id: int):
AND r.score IS NOT NULL
AND r.passed = true
AND NOT r.secret
AND EXISTS (
SELECT 1
FROM leaderboard.runs sr
WHERE sr.submission_id = s.id
AND sr.secret
AND sr.runner = r.runner
AND sr.mode = 'leaderboard'
AND sr.passed
)
AND NOT EXISTS (
SELECT 1
FROM leaderboard.runs sr
Expand Down Expand Up @@ -388,6 +406,15 @@ def get_user_trend(leaderboard_id: int):
AND r.score IS NOT NULL
AND r.passed = true
AND NOT r.secret
AND EXISTS (
SELECT 1
FROM leaderboard.runs sr
WHERE sr.submission_id = s.id
AND sr.secret
AND sr.runner = r.runner
AND sr.mode = 'leaderboard'
AND sr.passed
)
AND NOT EXISTS (
SELECT 1
FROM leaderboard.runs sr
Expand Down Expand Up @@ -482,6 +509,15 @@ def get_fastest_trend(leaderboard_id: int):
AND r.score IS NOT NULL
AND r.passed = true
AND NOT r.secret
AND EXISTS (
SELECT 1
FROM leaderboard.runs sr
WHERE sr.submission_id = s.id
AND sr.secret
AND sr.runner = r.runner
AND sr.mode = 'leaderboard'
AND sr.passed
)
AND NOT EXISTS (
SELECT 1
FROM leaderboard.runs sr
Expand Down
18 changes: 18 additions & 0 deletions kernelboard/api/leaderboard_summaries.py
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,15 @@ def _get_query_for_ids():
AND r.score IS NOT NULL
AND r.passed
AND s.leaderboard_id IN %s
AND EXISTS (
SELECT 1
FROM leaderboard.runs sr
WHERE sr.submission_id = s.id
AND sr.secret
AND sr.runner = r.runner
AND sr.mode = 'leaderboard'
AND sr.passed
)
AND NOT EXISTS (
SELECT 1
FROM leaderboard.runs sr
Expand Down Expand Up @@ -474,6 +483,15 @@ def _get_query():
WHERE NOT r.secret
AND r.score IS NOT NULL
AND r.passed
AND EXISTS (
SELECT 1
FROM leaderboard.runs sr
WHERE sr.submission_id = s.id
AND sr.secret
AND sr.runner = r.runner
AND sr.mode = 'leaderboard'
AND sr.passed
)
AND NOT EXISTS (
SELECT 1
FROM leaderboard.runs sr
Expand Down
9 changes: 9 additions & 0 deletions kernelboard/index.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,15 @@ def index():
WHERE NOT r.secret
AND r.score IS NOT NULL
AND r.passed
AND EXISTS (
SELECT 1
FROM leaderboard.runs sr
WHERE sr.submission_id = s.id
AND sr.secret
AND sr.runner = r.runner
AND sr.mode = 'leaderboard'
AND sr.passed
)
AND NOT EXISTS (
SELECT 1
FROM leaderboard.runs sr
Expand Down
9 changes: 9 additions & 0 deletions kernelboard/leaderboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,15 @@ def leaderboard(leaderboard_id: int):
AND r.score IS NOT NULL
AND r.passed
AND s.leaderboard_id = %(leaderboard_id)s
AND EXISTS (
SELECT 1
FROM leaderboard.runs sr
WHERE sr.submission_id = s.id
AND sr.secret
AND sr.runner = r.runner
AND sr.mode = 'leaderboard'
AND sr.passed
)
AND NOT EXISTS (
SELECT 1
FROM leaderboard.runs sr
Expand Down
9 changes: 9 additions & 0 deletions ranking_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,15 @@ def ensure_snapshot_table(conn):
WHERE NOT r.secret
AND r.score IS NOT NULL
AND r.passed
AND EXISTS (
SELECT 1
FROM leaderboard.runs sr
WHERE sr.submission_id = s.id
AND sr.secret
AND sr.runner = r.runner
AND sr.mode = 'leaderboard'
AND sr.passed
)
AND NOT EXISTS (
SELECT 1
FROM leaderboard.runs sr
Expand Down
34 changes: 33 additions & 1 deletion tests/api/test_leaderboard_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ def test_failed_secret_benchmark_hides_public_leaderboard_run(client, app):
(id, leaderboard_id, file_name, user_id, code_id, submission_time, done)
VALUES
(900001, 339, 'hidden_secret_fail.py', '123456789012345', 13, NOW(), TRUE),
(900002, 339, 'visible_public_pass.py', '234567890123456', 13, NOW(), TRUE)
(900002, 339, 'visible_public_pass.py', '234567890123456', 13, NOW(), TRUE),
(900003, 339, 'hidden_missing_secret.py', '345678901234567', 13, NOW(), TRUE)
"""
)
cur.execute(
Expand Down Expand Up @@ -104,6 +105,36 @@ def test_failed_secret_benchmark_hides_public_leaderboard_run(client, app):
'{}',
'{}',
'{}'
),
(
900004,
900002,
NOW(),
NOW(),
'leaderboard',
TRUE,
'H100',
-998,
TRUE,
'{}',
'{}',
'{}',
'{}'
),
(
900005,
900003,
NOW(),
NOW(),
'leaderboard',
FALSE,
'H100',
-997,
TRUE,
'{}',
'{}',
'{}',
'{}'
)
"""
)
Expand All @@ -117,4 +148,5 @@ def test_failed_secret_benchmark_hides_public_leaderboard_run(client, app):
ranked_files = {row["file_name"] for row in h100_rankings}

assert "hidden_secret_fail.py" not in ranked_files
assert "hidden_missing_secret.py" not in ranked_files
assert "visible_public_pass.py" in ranked_files
3 changes: 2 additions & 1 deletion tests/data.sql
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,8 @@ CREATE TABLE leaderboard.leaderboard (
creator_id bigint DEFAULT '-1'::integer NOT NULL,
forum_id bigint NOT NULL,
secret_seed bigint DEFAULT floor((random() * ('2147483648'::bigint)::double precision)) NOT NULL,
description text NOT NULL
description text NOT NULL,
visibility text DEFAULT 'public'::text NOT NULL
);


Expand Down
Loading