Skip to content

Commit

Permalink
Set file modified time explicitly
Browse files Browse the repository at this point in the history
  • Loading branch information
willmostly committed Jan 12, 2024
1 parent 667e447 commit 639a032
Showing 1 changed file with 3 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@
import org.junit.jupiter.api.TestInstance.Lifecycle;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.io.FileWriter;
Expand All @@ -29,15 +27,14 @@
import static io.trino.gateway.ha.router.RoutingGroupSelector.ROUTING_GROUP_HEADER;
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

@TestInstance(Lifecycle.PER_CLASS)
public class TestRoutingGroupSelector
{
private static final Logger log = LoggerFactory.getLogger(TestRoutingGroupSelector.class);
public static final String TRINO_SOURCE_HEADER = "X-Trino-Source";
public static final String TRINO_CLIENT_TAGS_HEADER = "X-Trino-Client-Tags";

Expand Down Expand Up @@ -111,7 +108,6 @@ void testByRoutingRulesEngineNoMatch(String rulesConfigPath)
assertNull(routingGroupSelector.findRoutingGroup(mockRequest));
}

//Todo: The functionality of reading the file before every request needs to be smarter
@Test
public void testByRoutingRulesEngineFileChange()
throws Exception
Expand All @@ -127,9 +123,7 @@ public void testByRoutingRulesEngineFileChange()
+ "actions:\n"
+ " - \"result.put(\\\"routingGroup\\\", \\\"etl\\\")\"");
fw.close();
file.getPath();
long etlLastModified = file.lastModified();
log.info("etl rule file created at: " + etlLastModified);
long lastModifed = file.lastModified();

RoutingGroupSelector routingGroupSelector =
RoutingGroupSelector.byRoutingRulesEngine(file.getPath());
Expand All @@ -140,11 +134,6 @@ public void testByRoutingRulesEngineFileChange()
assertEquals("etl",
routingGroupSelector.findRoutingGroup(mockRequest));

Thread.sleep(1);
// java.nio.file.attribute.FileTime offers a maximum precision of 1 ms. If the first
// half of this test runs in <1ms, the gateway may not recognize that the file
// has changed.

fw = new FileWriter(file, UTF_8);
fw.write(
"---\n"
Expand All @@ -154,9 +143,7 @@ public void testByRoutingRulesEngineFileChange()
+ "actions:\n"
+ " - \"result.put(\\\"routingGroup\\\", \\\"etl2\\\")\""); // change from etl to etl2
fw.close();
long etl2LastModified = file.lastModified();
log.info("etl2 rule file created at: " + etl2LastModified);
assertNotEquals(etl2LastModified, etlLastModified);
assertTrue(file.setLastModified(lastModifed + 1000), "File modified time could not be set");

when(mockRequest.getHeader(TRINO_SOURCE_HEADER)).thenReturn("airflow");
assertEquals("etl2",
Expand Down

0 comments on commit 639a032

Please sign in to comment.