| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- import { statSync } from "fs";
- async function getPage(path) {
- return fetch(`http://localhost:8923${path}`, {
- headers: {
- "User-Agent": "CHALLENGE",
- },
- })
- .then((resp) => {
- if (resp.status !== 200) {
- throw new Error(`wanted status 200, got status: ${resp.status}`);
- }
- return resp;
- })
- .then((resp) => resp.text());
- }
- async function getFileSize(filePath) {
- try {
- return statSync(filePath).size;
- } catch (error) {
- return 0;
- }
- }
- (async () => {
- const logFilePath = "./var/anubis.log";
- // Get initial log file size
- const initialSize = await getFileSize(logFilePath);
- console.log(`Initial log file size: ${initialSize} bytes`);
- // Make 35 requests with different paths
- const requests = [];
- for (let i = 0; i < 35; i++) {
- requests.push(`/test${i}`);
- }
- const resultSheet = {};
- let failed = false;
- for (const path of requests) {
- try {
- const resp = await getPage(path);
- resultSheet[path] = {
- success: true,
- line: resp.split("\n")[0],
- };
- } catch (error) {
- resultSheet[path] = {
- success: false,
- error: error.message,
- };
- console.log(`✗ Request to ${path} failed: ${error.message}`);
- failed = true;
- }
- }
- // Check final log file size
- const finalSize = await getFileSize(logFilePath);
- console.log(`Final log file size: ${finalSize} bytes`);
- console.log(`Size increase: ${finalSize - initialSize} bytes`);
- // Verify that log file size increased
- if (finalSize <= initialSize) {
- console.error(
- "ERROR: Log file size did not increase after making requests!",
- );
- failed = true;
- }
- let successCount = 0;
- for (let [k, v] of Object.entries(resultSheet)) {
- if (!v.success) {
- console.error({ path: k, error: v.error });
- } else {
- successCount++;
- }
- }
- console.log(`Successful requests: ${successCount}/${requests.length}`);
- if (failed) {
- console.error(
- "Test failed: Some requests failed or log file size did not increase",
- );
- process.exit(1);
- } else {
- console.log(
- "Test passed: All requests succeeded and log file size increased",
- );
- process.exit(0);
- }
- })();
|