diff --git a/coverage/coverage.out b/coverage/coverage.out index 565860b..0b03894 100644 --- a/coverage/coverage.out +++ b/coverage/coverage.out @@ -54,6 +54,54 @@ github.com/echovault/echovault/internal/aof/log/store.go:191.2,191.47 1 0 github.com/echovault/echovault/internal/aof/log/store.go:191.47,193.3 1 0 github.com/echovault/echovault/internal/aof/log/store.go:194.2,194.12 1 0 github.com/echovault/echovault/internal/aof/log/store.go:197.41,201.2 3 1 +github.com/echovault/echovault/internal/aof/engine.go:50.56,51.30 1 1 +github.com/echovault/echovault/internal/aof/engine.go:51.30,53.3 1 1 +github.com/echovault/echovault/internal/aof/engine.go:56.57,57.30 1 1 +github.com/echovault/echovault/internal/aof/engine.go:57.30,59.3 1 1 +github.com/echovault/echovault/internal/aof/engine.go:62.59,63.30 1 1 +github.com/echovault/echovault/internal/aof/engine.go:63.30,65.3 1 1 +github.com/echovault/echovault/internal/aof/engine.go:68.58,69.30 1 1 +github.com/echovault/echovault/internal/aof/engine.go:69.30,71.3 1 1 +github.com/echovault/echovault/internal/aof/engine.go:74.59,75.30 1 1 +github.com/echovault/echovault/internal/aof/engine.go:75.30,77.3 1 1 +github.com/echovault/echovault/internal/aof/engine.go:80.82,81.30 1 1 +github.com/echovault/echovault/internal/aof/engine.go:81.30,83.3 1 1 +github.com/echovault/echovault/internal/aof/engine.go:86.89,87.30 1 1 +github.com/echovault/echovault/internal/aof/engine.go:87.30,89.3 1 1 +github.com/echovault/echovault/internal/aof/engine.go:92.73,93.30 1 1 +github.com/echovault/echovault/internal/aof/engine.go:93.30,95.3 1 1 +github.com/echovault/echovault/internal/aof/engine.go:98.82,99.30 1 1 +github.com/echovault/echovault/internal/aof/engine.go:99.30,101.3 1 1 +github.com/echovault/echovault/internal/aof/engine.go:104.78,105.30 1 1 +github.com/echovault/echovault/internal/aof/engine.go:105.30,107.3 1 1 +github.com/echovault/echovault/internal/aof/engine.go:110.69,118.29 1 1 +github.com/echovault/echovault/internal/aof/engine.go:118.30,118.31 0 0 +github.com/echovault/echovault/internal/aof/engine.go:119.30,119.31 0 0 +github.com/echovault/echovault/internal/aof/engine.go:120.57,120.71 1 0 +github.com/echovault/echovault/internal/aof/engine.go:121.63,121.64 0 0 +github.com/echovault/echovault/internal/aof/engine.go:122.44,122.45 0 0 +github.com/echovault/echovault/internal/aof/engine.go:127.2,127.33 1 1 +github.com/echovault/echovault/internal/aof/engine.go:127.33,129.3 1 1 +github.com/echovault/echovault/internal/aof/engine.go:132.2,139.16 2 1 +github.com/echovault/echovault/internal/aof/engine.go:139.16,141.3 1 0 +github.com/echovault/echovault/internal/aof/engine.go:142.2,152.16 3 1 +github.com/echovault/echovault/internal/aof/engine.go:152.16,154.3 1 0 +github.com/echovault/echovault/internal/aof/engine.go:155.2,159.12 2 1 +github.com/echovault/echovault/internal/aof/engine.go:159.12,160.7 1 1 +github.com/echovault/echovault/internal/aof/engine.go:160.7,162.54 2 1 +github.com/echovault/echovault/internal/aof/engine.go:162.54,164.5 1 0 +github.com/echovault/echovault/internal/aof/engine.go:168.2,168.20 1 1 +github.com/echovault/echovault/internal/aof/engine.go:171.52,173.2 1 1 +github.com/echovault/echovault/internal/aof/engine.go:175.42,183.62 5 1 +github.com/echovault/echovault/internal/aof/engine.go:183.62,185.3 1 0 +github.com/echovault/echovault/internal/aof/engine.go:188.2,188.54 1 1 +github.com/echovault/echovault/internal/aof/engine.go:188.54,190.3 1 0 +github.com/echovault/echovault/internal/aof/engine.go:192.2,192.12 1 1 +github.com/echovault/echovault/internal/aof/engine.go:195.39,196.55 1 1 +github.com/echovault/echovault/internal/aof/engine.go:196.55,198.3 1 0 +github.com/echovault/echovault/internal/aof/engine.go:199.2,199.53 1 1 +github.com/echovault/echovault/internal/aof/engine.go:199.53,201.3 1 0 +github.com/echovault/echovault/internal/aof/engine.go:202.2,202.12 1 1 github.com/echovault/echovault/internal/aof/preamble/store.go:45.62,46.36 1 1 github.com/echovault/echovault/internal/aof/preamble/store.go:46.36,48.3 1 1 github.com/echovault/echovault/internal/aof/preamble/store.go:51.71,52.36 1 0 @@ -109,54 +157,6 @@ github.com/echovault/echovault/internal/aof/preamble/store.go:185.43,187.4 1 1 github.com/echovault/echovault/internal/aof/preamble/store.go:189.2,189.35 1 1 github.com/echovault/echovault/internal/aof/preamble/store.go:189.35,191.3 1 1 github.com/echovault/echovault/internal/aof/preamble/store.go:192.2,192.14 1 1 -github.com/echovault/echovault/internal/aof/engine.go:50.56,51.30 1 1 -github.com/echovault/echovault/internal/aof/engine.go:51.30,53.3 1 1 -github.com/echovault/echovault/internal/aof/engine.go:56.57,57.30 1 1 -github.com/echovault/echovault/internal/aof/engine.go:57.30,59.3 1 1 -github.com/echovault/echovault/internal/aof/engine.go:62.59,63.30 1 1 -github.com/echovault/echovault/internal/aof/engine.go:63.30,65.3 1 1 -github.com/echovault/echovault/internal/aof/engine.go:68.58,69.30 1 1 -github.com/echovault/echovault/internal/aof/engine.go:69.30,71.3 1 1 -github.com/echovault/echovault/internal/aof/engine.go:74.59,75.30 1 1 -github.com/echovault/echovault/internal/aof/engine.go:75.30,77.3 1 1 -github.com/echovault/echovault/internal/aof/engine.go:80.82,81.30 1 1 -github.com/echovault/echovault/internal/aof/engine.go:81.30,83.3 1 1 -github.com/echovault/echovault/internal/aof/engine.go:86.89,87.30 1 1 -github.com/echovault/echovault/internal/aof/engine.go:87.30,89.3 1 1 -github.com/echovault/echovault/internal/aof/engine.go:92.73,93.30 1 1 -github.com/echovault/echovault/internal/aof/engine.go:93.30,95.3 1 1 -github.com/echovault/echovault/internal/aof/engine.go:98.82,99.30 1 1 -github.com/echovault/echovault/internal/aof/engine.go:99.30,101.3 1 1 -github.com/echovault/echovault/internal/aof/engine.go:104.78,105.30 1 1 -github.com/echovault/echovault/internal/aof/engine.go:105.30,107.3 1 1 -github.com/echovault/echovault/internal/aof/engine.go:110.69,118.29 1 1 -github.com/echovault/echovault/internal/aof/engine.go:118.30,118.31 0 0 -github.com/echovault/echovault/internal/aof/engine.go:119.30,119.31 0 0 -github.com/echovault/echovault/internal/aof/engine.go:120.57,120.71 1 0 -github.com/echovault/echovault/internal/aof/engine.go:121.63,121.64 0 0 -github.com/echovault/echovault/internal/aof/engine.go:122.44,122.45 0 0 -github.com/echovault/echovault/internal/aof/engine.go:127.2,127.33 1 1 -github.com/echovault/echovault/internal/aof/engine.go:127.33,129.3 1 1 -github.com/echovault/echovault/internal/aof/engine.go:132.2,139.16 2 1 -github.com/echovault/echovault/internal/aof/engine.go:139.16,141.3 1 0 -github.com/echovault/echovault/internal/aof/engine.go:142.2,152.16 3 1 -github.com/echovault/echovault/internal/aof/engine.go:152.16,154.3 1 0 -github.com/echovault/echovault/internal/aof/engine.go:155.2,159.12 2 1 -github.com/echovault/echovault/internal/aof/engine.go:159.12,160.7 1 1 -github.com/echovault/echovault/internal/aof/engine.go:160.7,162.54 2 1 -github.com/echovault/echovault/internal/aof/engine.go:162.54,164.5 1 0 -github.com/echovault/echovault/internal/aof/engine.go:168.2,168.20 1 1 -github.com/echovault/echovault/internal/aof/engine.go:171.52,173.2 1 1 -github.com/echovault/echovault/internal/aof/engine.go:175.42,183.62 5 1 -github.com/echovault/echovault/internal/aof/engine.go:183.62,185.3 1 0 -github.com/echovault/echovault/internal/aof/engine.go:188.2,188.54 1 1 -github.com/echovault/echovault/internal/aof/engine.go:188.54,190.3 1 0 -github.com/echovault/echovault/internal/aof/engine.go:192.2,192.12 1 1 -github.com/echovault/echovault/internal/aof/engine.go:195.39,196.55 1 1 -github.com/echovault/echovault/internal/aof/engine.go:196.55,198.3 1 0 -github.com/echovault/echovault/internal/aof/engine.go:199.2,199.53 1 1 -github.com/echovault/echovault/internal/aof/engine.go:199.53,201.3 1 0 -github.com/echovault/echovault/internal/aof/engine.go:202.2,202.12 1 1 github.com/echovault/echovault/internal/eviction/lfu.go:35.29,42.2 3 1 github.com/echovault/echovault/internal/eviction/lfu.go:44.34,46.2 1 1 github.com/echovault/echovault/internal/eviction/lfu.go:48.44,50.54 1 1 @@ -634,6 +634,99 @@ github.com/echovault/echovault/internal/modules/connection/commands.go:28.9,29.3 github.com/echovault/echovault/internal/modules/connection/commands.go:30.9,31.94 1 1 github.com/echovault/echovault/internal/modules/connection/commands.go:35.36,45.84 1 1 github.com/echovault/echovault/internal/modules/connection/commands.go:45.84,51.5 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:27.78,33.29 4 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:33.29,34.54 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:34.54,40.42 4 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:40.42,42.5 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:44.4,47.12 3 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:50.3,50.36 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:50.36,57.43 5 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:57.43,59.5 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:61.4,63.21 2 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:67.2,69.25 2 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:72.76,76.35 3 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:76.35,77.65 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:77.65,78.41 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:78.41,80.5 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:81.4,81.12 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:83.3,83.13 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:86.2,86.51 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:89.75,90.29 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:91.9,96.36 4 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:96.36,97.66 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:97.66,98.52 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:98.52,102.6 3 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:103.5,103.13 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:105.4,106.14 2 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:108.3,109.26 2 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:111.9,115.56 3 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:115.56,117.4 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:118.3,118.53 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:118.53,122.37 3 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:122.37,123.67 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:123.67,124.53 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:124.53,125.59 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:125.59,129.8 3 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:131.6,131.14 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:133.5,133.54 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:133.54,136.6 2 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:138.9,138.61 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:138.61,142.37 3 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:142.37,143.67 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:143.67,144.53 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:144.53,146.24 2 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:146.24,149.8 2 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:151.6,151.14 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:153.5,153.33 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:153.33,156.6 2 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:158.9,158.60 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:158.60,162.37 3 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:162.37,163.67 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:163.67,164.53 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:164.53,165.55 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:165.55,169.8 3 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:171.6,171.14 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:173.5,173.50 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:173.50,176.6 2 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:178.9,180.4 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:181.3,182.26 2 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:183.10,184.54 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:188.75,190.2 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:192.36,200.84 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:200.84,204.5 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:213.84,217.5 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:225.86,229.7 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:238.86,242.7 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:252.86,256.7 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:267.84,271.5 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:272.73,273.49 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:273.49,275.6 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:276.5,276.45 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:285.84,289.5 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:290.73,292.18 2 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:292.18,294.6 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:295.5,295.53 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:304.84,308.5 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:309.73,310.47 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:310.47,312.6 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:313.5,313.45 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:321.84,325.5 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:335.86,339.7 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:340.75,341.34 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:341.34,343.8 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:344.7,345.34 2 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:345.34,347.8 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:348.7,348.75 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:348.75,350.8 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:351.7,351.47 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:361.86,365.7 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:366.75,367.35 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:367.35,369.8 1 0 +github.com/echovault/echovault/internal/modules/admin/commands.go:370.7,371.47 2 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:380.86,384.7 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:385.75,388.38 3 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:388.38,390.8 1 1 +github.com/echovault/echovault/internal/modules/admin/commands.go:391.7,391.30 1 1 github.com/echovault/echovault/internal/modules/generic/commands.go:33.67,35.16 2 1 github.com/echovault/echovault/internal/modules/generic/commands.go:35.16,37.3 1 0 github.com/echovault/echovault/internal/modules/generic/commands.go:39.2,46.16 7 1 @@ -956,9 +1049,9 @@ github.com/echovault/echovault/internal/modules/hash/commands.go:301.38,303.17 2 github.com/echovault/echovault/internal/modules/hash/commands.go:303.17,304.41 1 1 github.com/echovault/echovault/internal/modules/hash/commands.go:304.41,306.13 2 1 github.com/echovault/echovault/internal/modules/hash/commands.go:308.4,308.42 1 1 -github.com/echovault/echovault/internal/modules/hash/commands.go:308.42,311.13 3 1 -github.com/echovault/echovault/internal/modules/hash/commands.go:313.4,313.38 1 0 -github.com/echovault/echovault/internal/modules/hash/commands.go:313.38,315.13 2 0 +github.com/echovault/echovault/internal/modules/hash/commands.go:308.42,311.13 3 0 +github.com/echovault/echovault/internal/modules/hash/commands.go:313.4,313.38 1 1 +github.com/echovault/echovault/internal/modules/hash/commands.go:313.38,315.13 2 1 github.com/echovault/echovault/internal/modules/hash/commands.go:320.2,320.25 1 1 github.com/echovault/echovault/internal/modules/hash/commands.go:323.68,325.16 2 1 github.com/echovault/echovault/internal/modules/hash/commands.go:325.16,327.3 1 0 @@ -1474,7 +1567,7 @@ github.com/echovault/echovault/internal/modules/set/commands.go:159.70,161.16 2 github.com/echovault/echovault/internal/modules/set/commands.go:161.16,163.3 1 0 github.com/echovault/echovault/internal/modules/set/commands.go:165.2,169.37 3 1 github.com/echovault/echovault/internal/modules/set/commands.go:169.37,170.14 1 1 -github.com/echovault/echovault/internal/modules/set/commands.go:170.14,172.4 1 0 +github.com/echovault/echovault/internal/modules/set/commands.go:170.14,172.4 1 1 github.com/echovault/echovault/internal/modules/set/commands.go:173.3,174.10 2 1 github.com/echovault/echovault/internal/modules/set/commands.go:174.10,177.4 1 1 github.com/echovault/echovault/internal/modules/set/commands.go:178.3,178.27 1 1 @@ -2707,99 +2800,6 @@ github.com/echovault/echovault/internal/snapshot/snapshot.go:354.94,356.3 1 1 github.com/echovault/echovault/internal/snapshot/snapshot.go:358.2,360.12 2 1 github.com/echovault/echovault/internal/snapshot/snapshot.go:363.46,365.2 1 0 github.com/echovault/echovault/internal/snapshot/snapshot.go:367.42,369.2 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:27.78,33.29 4 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:33.29,34.54 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:34.54,40.42 4 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:40.42,42.5 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:44.4,47.12 3 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:50.3,50.36 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:50.36,57.43 5 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:57.43,59.5 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:61.4,63.21 2 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:67.2,69.25 2 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:72.76,76.35 3 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:76.35,77.65 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:77.65,78.41 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:78.41,80.5 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:81.4,81.12 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:83.3,83.13 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:86.2,86.51 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:89.75,90.29 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:91.9,96.36 4 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:96.36,97.66 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:97.66,98.52 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:98.52,102.6 3 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:103.5,103.13 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:105.4,106.14 2 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:108.3,109.26 2 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:111.9,115.56 3 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:115.56,117.4 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:118.3,118.53 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:118.53,122.37 3 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:122.37,123.67 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:123.67,124.53 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:124.53,125.59 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:125.59,129.8 3 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:131.6,131.14 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:133.5,133.54 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:133.54,136.6 2 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:138.9,138.61 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:138.61,142.37 3 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:142.37,143.67 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:143.67,144.53 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:144.53,146.24 2 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:146.24,149.8 2 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:151.6,151.14 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:153.5,153.33 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:153.33,156.6 2 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:158.9,158.60 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:158.60,162.37 3 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:162.37,163.67 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:163.67,164.53 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:164.53,165.55 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:165.55,169.8 3 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:171.6,171.14 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:173.5,173.50 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:173.50,176.6 2 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:178.9,180.4 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:181.3,182.26 2 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:183.10,184.54 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:188.75,190.2 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:192.36,200.84 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:200.84,204.5 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:213.84,217.5 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:225.86,229.7 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:238.86,242.7 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:252.86,256.7 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:267.84,271.5 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:272.73,273.49 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:273.49,275.6 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:276.5,276.45 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:285.84,289.5 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:290.73,292.18 2 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:292.18,294.6 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:295.5,295.53 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:304.84,308.5 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:309.73,310.47 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:310.47,312.6 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:313.5,313.45 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:321.84,325.5 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:335.86,339.7 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:340.75,341.34 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:341.34,343.8 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:344.7,345.34 2 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:345.34,347.8 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:348.7,348.75 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:348.75,350.8 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:351.7,351.47 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:361.86,365.7 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:366.75,367.35 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:367.35,369.8 1 0 -github.com/echovault/echovault/internal/modules/admin/commands.go:370.7,371.47 2 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:380.86,384.7 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:385.75,388.38 3 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:388.38,390.8 1 1 -github.com/echovault/echovault/internal/modules/admin/commands.go:391.7,391.30 1 1 github.com/echovault/echovault/echovault/api_acl.go:126.71,128.23 2 0 github.com/echovault/echovault/echovault/api_acl.go:128.23,130.3 1 0 github.com/echovault/echovault/echovault/api_acl.go:131.2,132.16 2 0 @@ -3533,7 +3533,7 @@ github.com/echovault/echovault/echovault/echovault.go:426.43,429.9 2 0 github.com/echovault/echovault/echovault/echovault.go:432.3,432.17 1 1 github.com/echovault/echovault/echovault/echovault.go:432.17,434.9 2 0 github.com/echovault/echovault/echovault/echovault.go:437.3,439.43 2 1 -github.com/echovault/echovault/echovault/echovault.go:439.43,440.9 1 0 +github.com/echovault/echovault/echovault/echovault.go:439.43,440.9 1 1 github.com/echovault/echovault/echovault/echovault.go:443.3,443.17 1 1 github.com/echovault/echovault/echovault/echovault.go:443.17,444.87 1 0 github.com/echovault/echovault/echovault/echovault.go:444.87,446.5 1 0 @@ -3550,7 +3550,7 @@ github.com/echovault/echovault/echovault/echovault.go:471.5,471.10 1 0 github.com/echovault/echovault/echovault/echovault.go:473.4,474.21 2 0 github.com/echovault/echovault/echovault/echovault.go:474.21,475.10 1 0 github.com/echovault/echovault/echovault/echovault.go:477.4,477.27 1 0 -github.com/echovault/echovault/echovault/echovault.go:481.2,481.37 1 0 +github.com/echovault/echovault/echovault/echovault.go:481.2,481.37 1 1 github.com/echovault/echovault/echovault/echovault.go:481.37,483.3 1 0 github.com/echovault/echovault/echovault/echovault.go:491.34,493.2 1 1 github.com/echovault/echovault/echovault/echovault.go:496.47,497.38 1 0 @@ -3625,7 +3625,7 @@ github.com/echovault/echovault/echovault/keyspace.go:176.97,178.3 1 1 github.com/echovault/echovault/echovault/keyspace.go:181.2,181.9 1 1 github.com/echovault/echovault/echovault/keyspace.go:182.108,183.36 1 0 github.com/echovault/echovault/echovault/keyspace.go:184.108,185.36 1 0 -github.com/echovault/echovault/echovault/keyspace.go:190.2,190.12 1 1 +github.com/echovault/echovault/echovault/keyspace.go:188.2,190.12 2 1 github.com/echovault/echovault/echovault/keyspace.go:193.60,195.6 1 0 github.com/echovault/echovault/echovault/keyspace.go:195.6,196.83 1 0 github.com/echovault/echovault/echovault/keyspace.go:196.83,198.9 2 0 @@ -3718,10 +3718,10 @@ github.com/echovault/echovault/echovault/keyspace.go:460.9,460.64 1 0 github.com/echovault/echovault/echovault/keyspace.go:460.64,461.60 1 0 github.com/echovault/echovault/echovault/keyspace.go:461.60,463.5 1 0 github.com/echovault/echovault/echovault/keyspace.go:468.2,468.21 1 1 -github.com/echovault/echovault/echovault/keyspace.go:468.21,471.3 1 1 -github.com/echovault/echovault/echovault/keyspace.go:473.2,476.58 2 0 -github.com/echovault/echovault/echovault/keyspace.go:476.58,480.3 2 0 -github.com/echovault/echovault/echovault/keyspace.go:482.2,482.12 1 0 +github.com/echovault/echovault/echovault/keyspace.go:468.21,470.3 1 1 +github.com/echovault/echovault/echovault/keyspace.go:472.2,475.58 2 0 +github.com/echovault/echovault/echovault/keyspace.go:475.58,479.3 2 0 +github.com/echovault/echovault/echovault/keyspace.go:481.2,481.12 1 0 github.com/echovault/echovault/echovault/modules.go:27.75,30.42 3 1 github.com/echovault/echovault/echovault/modules.go:30.42,31.46 1 1 github.com/echovault/echovault/echovault/modules.go:31.46,33.4 1 1 @@ -3729,33 +3729,35 @@ github.com/echovault/echovault/echovault/modules.go:35.2,35.72 1 1 github.com/echovault/echovault/echovault/modules.go:38.125,58.37 1 1 github.com/echovault/echovault/echovault/modules.go:58.37,62.4 3 1 github.com/echovault/echovault/echovault/modules.go:66.137,68.16 2 1 -github.com/echovault/echovault/echovault/modules.go:68.16,70.3 1 0 -github.com/echovault/echovault/echovault/modules.go:72.2,73.16 2 1 -github.com/echovault/echovault/echovault/modules.go:73.16,75.3 1 1 -github.com/echovault/echovault/echovault/modules.go:77.2,81.16 4 1 -github.com/echovault/echovault/echovault/modules.go:81.16,83.3 1 1 -github.com/echovault/echovault/echovault/modules.go:84.2,85.8 2 1 -github.com/echovault/echovault/echovault/modules.go:85.8,88.3 2 1 -github.com/echovault/echovault/echovault/modules.go:90.2,90.51 1 1 -github.com/echovault/echovault/echovault/modules.go:90.51,93.87 1 1 -github.com/echovault/echovault/echovault/modules.go:93.87,95.4 1 0 -github.com/echovault/echovault/echovault/modules.go:99.2,99.50 1 1 -github.com/echovault/echovault/echovault/modules.go:99.50,100.7 1 1 -github.com/echovault/echovault/echovault/modules.go:100.7,101.42 1 1 -github.com/echovault/echovault/echovault/modules.go:101.42,103.10 2 1 -github.com/echovault/echovault/echovault/modules.go:108.2,108.43 1 1 -github.com/echovault/echovault/echovault/modules.go:108.43,110.17 2 1 -github.com/echovault/echovault/echovault/modules.go:110.17,112.4 1 1 -github.com/echovault/echovault/echovault/modules.go:114.3,114.62 1 1 -github.com/echovault/echovault/echovault/modules.go:114.62,116.4 1 1 -github.com/echovault/echovault/echovault/modules.go:118.3,120.18 2 1 -github.com/echovault/echovault/echovault/modules.go:124.2,124.32 1 1 -github.com/echovault/echovault/echovault/modules.go:124.32,127.17 3 1 -github.com/echovault/echovault/echovault/modules.go:127.17,129.4 1 0 -github.com/echovault/echovault/echovault/modules.go:130.3,130.18 1 1 -github.com/echovault/echovault/echovault/modules.go:134.2,134.34 1 0 -github.com/echovault/echovault/echovault/modules.go:134.34,137.3 2 0 -github.com/echovault/echovault/echovault/modules.go:139.2,139.72 1 0 +github.com/echovault/echovault/echovault/modules.go:68.16,70.3 1 1 +github.com/echovault/echovault/echovault/modules.go:72.2,72.19 1 1 +github.com/echovault/echovault/echovault/modules.go:72.19,74.3 1 0 +github.com/echovault/echovault/echovault/modules.go:76.2,77.16 2 1 +github.com/echovault/echovault/echovault/modules.go:77.16,79.3 1 1 +github.com/echovault/echovault/echovault/modules.go:81.2,85.16 4 1 +github.com/echovault/echovault/echovault/modules.go:85.16,87.3 1 1 +github.com/echovault/echovault/echovault/modules.go:88.2,89.8 2 1 +github.com/echovault/echovault/echovault/modules.go:89.8,92.3 2 1 +github.com/echovault/echovault/echovault/modules.go:94.2,94.51 1 1 +github.com/echovault/echovault/echovault/modules.go:94.51,97.87 1 1 +github.com/echovault/echovault/echovault/modules.go:97.87,99.4 1 0 +github.com/echovault/echovault/echovault/modules.go:103.2,103.50 1 1 +github.com/echovault/echovault/echovault/modules.go:103.50,104.7 1 1 +github.com/echovault/echovault/echovault/modules.go:104.7,105.42 1 1 +github.com/echovault/echovault/echovault/modules.go:105.42,107.10 2 1 +github.com/echovault/echovault/echovault/modules.go:112.2,112.43 1 1 +github.com/echovault/echovault/echovault/modules.go:112.43,114.17 2 1 +github.com/echovault/echovault/echovault/modules.go:114.17,116.4 1 1 +github.com/echovault/echovault/echovault/modules.go:118.3,118.62 1 1 +github.com/echovault/echovault/echovault/modules.go:118.62,120.4 1 1 +github.com/echovault/echovault/echovault/modules.go:122.3,124.18 2 1 +github.com/echovault/echovault/echovault/modules.go:128.2,128.32 1 1 +github.com/echovault/echovault/echovault/modules.go:128.32,131.17 3 1 +github.com/echovault/echovault/echovault/modules.go:131.17,133.4 1 0 +github.com/echovault/echovault/echovault/modules.go:134.3,134.18 1 1 +github.com/echovault/echovault/echovault/modules.go:138.2,138.34 1 0 +github.com/echovault/echovault/echovault/modules.go:138.34,141.3 2 0 +github.com/echovault/echovault/echovault/modules.go:143.2,143.72 1 0 github.com/echovault/echovault/echovault/plugin.go:37.72,41.41 3 1 github.com/echovault/echovault/echovault/plugin.go:41.41,42.37 1 1 github.com/echovault/echovault/echovault/plugin.go:42.37,44.4 1 1 diff --git a/echovault/api_admin_test.go b/echovault/api_admin_test.go index 5204747..24f3809 100644 --- a/echovault/api_admin_test.go +++ b/echovault/api_admin_test.go @@ -243,7 +243,6 @@ func TestEchoVault_ExecuteCommand(t *testing.T) { r := resp.NewReader(bytes.NewReader(b)) v, _, _ := r.ReadValue() if v.Integer() != tt.wantRes { - fmt.Println("RES: ", string(b)) t.Errorf("ExecuteCommand() response = %d, wantRes %d", v.Integer(), tt.wantRes) } }) diff --git a/echovault/api_set_test.go b/echovault/api_set_test.go index c3165cd..a882671 100644 --- a/echovault/api_set_test.go +++ b/echovault/api_set_test.go @@ -376,7 +376,7 @@ func TestEchoVault_SINTER(t *testing.T) { "key12": set.NewSet([]string{"one", "two", "thirty-six", "twelve", "eleven"}), "key13": set.NewSet([]string{"seven", "eight", "nine", "ten", "twelve"}), }, - keys: []string{"non-existent", "key7", "key8"}, + keys: []string{"non-existent", "key12", "key13"}, want: []string{}, wantErr: false, }, diff --git a/echovault/keyspace.go b/echovault/keyspace.go index 16a5cc6..70ce702 100644 --- a/echovault/keyspace.go +++ b/echovault/keyspace.go @@ -185,7 +185,7 @@ func (server *EchoVault) deleteKey(key string) error { server.lruCache.cache.Delete(key) } - // log.Printf("deleted key %s\n", key) // TODO: Uncomment this + log.Printf("deleted key %s\n", key) return nil } @@ -466,7 +466,6 @@ func (server *EchoVault) evictKeysWithExpiredTTL(ctx context.Context) error { // If sampleSize is 0, there's no need to calculate deleted percentage. if sampleSize == 0 { - // log.Println("no keys to sample, skipping eviction") // TODO: Uncomment this return nil } diff --git a/echovault/modules.go b/echovault/modules.go index 8a456de..2d35b0c 100644 --- a/echovault/modules.go +++ b/echovault/modules.go @@ -69,6 +69,10 @@ func (server *EchoVault) handleCommand(ctx context.Context, message []byte, conn return nil, err } + if len(cmd) == 0 { + return nil, errors.New("empty command") + } + command, err := server.getCommand(cmd[0]) if err != nil { return nil, err diff --git a/internal/memberlist/broadcast.go b/internal/memberlist/broadcast.go index 2939eb6..74462a9 100644 --- a/internal/memberlist/broadcast.go +++ b/internal/memberlist/broadcast.go @@ -16,8 +16,8 @@ package memberlist import ( "encoding/json" - "fmt" "github.com/hashicorp/memberlist" + "log" ) type BroadcastMessage struct { @@ -53,7 +53,7 @@ func (broadcastMessage *BroadcastMessage) Message() []byte { msg, err := json.Marshal(broadcastMessage) if err != nil { - fmt.Println(err) + log.Println(err) return []byte{} } diff --git a/internal/memberlist/delegate.go b/internal/memberlist/delegate.go index 18fb3d1..4fe6da9 100644 --- a/internal/memberlist/delegate.go +++ b/internal/memberlist/delegate.go @@ -81,7 +81,7 @@ func (delegate *Delegate) NotifyMsg(msgBytes []byte) { } err := delegate.options.addVoter(msg.NodeMeta.ServerID, msg.NodeMeta.RaftAddr, 0, 0) if err != nil { - fmt.Println(err) + log.Println(err) } case "DeleteKey": diff --git a/internal/memberlist/event_delegate.go b/internal/memberlist/event_delegate.go index daa49c8..0a60b51 100644 --- a/internal/memberlist/event_delegate.go +++ b/internal/memberlist/event_delegate.go @@ -16,8 +16,8 @@ package memberlist import ( "encoding/json" - "fmt" "github.com/hashicorp/memberlist" + "log" ) type EventDelegate struct { @@ -50,14 +50,14 @@ func (eventDelegate *EventDelegate) NotifyLeave(node *memberlist.Node) { err := json.Unmarshal(node.Meta, &meta) if err != nil { - fmt.Println("Could not get leaving node's metadata.") + log.Println("Could not get leaving node's metadata.") return } err = eventDelegate.options.removeRaftServer(meta) if err != nil { - fmt.Println(err) + log.Println(err) } } diff --git a/internal/memberlist/memberlist.go b/internal/memberlist/memberlist.go index b3bd186..4b5e498 100644 --- a/internal/memberlist/memberlist.go +++ b/internal/memberlist/memberlist.go @@ -168,5 +168,5 @@ func (m *MemberList) MemberListShutdown() { log.Fatal("Could not gracefully shutdown memberlist background maintenance") } - fmt.Println("Successfully shutdown memberlist") + log.Println("Successfully shutdown memberlist") } diff --git a/internal/modules/acl/acl.go b/internal/modules/acl/acl.go index 5dc7d64..4cf20bd 100644 --- a/internal/modules/acl/acl.go +++ b/internal/modules/acl/acl.go @@ -72,7 +72,7 @@ func NewACL(config config.Config) *ACL { } else { defer func() { if err := f.Close(); err != nil { - fmt.Println("acl config file close error: ", err) + log.Println("acl config file close error: ", err) } }() diff --git a/internal/modules/acl/commands_test.go b/internal/modules/acl/commands_test.go index 097ee1d..ec2a1d9 100644 --- a/internal/modules/acl/commands_test.go +++ b/internal/modules/acl/commands_test.go @@ -204,11 +204,20 @@ func Test_HandleAuth(t *testing.T) { if err != nil { t.Error(err) } + + for { + // Wait until connection is not nil before breaking out. + if conn != nil { + break + } + } + defer func() { if conn != nil { _ = conn.Close() } }() + r := resp.NewConn(conn) tests := []struct { @@ -423,6 +432,14 @@ func Test_HandleUsers(t *testing.T) { if err != nil { t.Error(err) } + + for { + // Wait until connection is not nil before continuing. + if conn != nil { + break + } + } + defer func() { if conn != nil { _ = conn.Close() diff --git a/internal/modules/set/commands_test.go b/internal/modules/set/commands_test.go index 9f5b99b..bbc80db 100644 --- a/internal/modules/set/commands_test.go +++ b/internal/modules/set/commands_test.go @@ -359,7 +359,7 @@ func Test_HandleSDIFF(t *testing.T) { presetValues: map[string]interface{}{ "SdiffKey6": set.NewSet([]string{"one", "two", "three", "four", "five", "six", "seven", "eight"}), "SdiffKey7": "Default value", - "SdiffKey8": 123456789, + "SdiffKey8": "123456789", }, command: []string{"SDIFF", "SdiffKey6", "SdiffKey7", "SdiffKey8"}, expectedResponse: []string{"one", "two", "three", "four", "five", "six", "seven", "eight"}, @@ -510,7 +510,7 @@ func Test_HandleSDIFFSTORE(t *testing.T) { presetValues: map[string]interface{}{ "SdiffStoreKey6": set.NewSet([]string{"one", "two", "three", "four", "five", "six", "seven", "eight"}), "SdiffStoreKey7": "Default value", - "SdiffStoreKey8": 123456789, + "SdiffStoreKey8": "123456789", }, destination: "SdiffStoreDestination3", command: []string{"SDIFFSTORE", "SdiffStoreDestination3", "SdiffStoreKey6", "SdiffStoreKey7", "SdiffStoreKey8"}, diff --git a/internal/modules/sorted_set/commands_test.go b/internal/modules/sorted_set/commands_test.go index 5e97a43..b420be7 100644 --- a/internal/modules/sorted_set/commands_test.go +++ b/internal/modules/sorted_set/commands_test.go @@ -1589,7 +1589,7 @@ func Test_HandleZMPOP(t *testing.T) { preset: true, presetValues: map[string]interface{}{ "ZmpopKey8": "Default value", - "ZmpopKey9": 56, + "ZmpopKey9": "56", "ZmpopKey11": sorted_set.NewSortedSet([]sorted_set.MemberParam{ {Value: "one", Score: 1}, {Value: "two", Score: 2}, {Value: "three", Score: 3}, {Value: "four", Score: 4}, diff --git a/internal/raft/raft.go b/internal/raft/raft.go index 796eb30..b900fe2 100644 --- a/internal/raft/raft.go +++ b/internal/raft/raft.go @@ -222,6 +222,6 @@ func (r *Raft) RaftShutdown() { if err != nil { log.Fatal(err) } - fmt.Println("Leadership transfer successful.") + log.Println("Leadership transfer successful.") } }