Implemented tests for api_acl.go file

This commit is contained in:
Kelvin Clement Mwinuka
2024-05-27 15:50:25 +08:00
parent ef04bae730
commit 30b8b205a7
5 changed files with 560 additions and 433 deletions

View File

@@ -21,9 +21,9 @@ github.com/echovault/echovault/internal/aof/log/store.go:98.17,100.4 1 0
github.com/echovault/echovault/internal/aof/log/store.go:101.3,101.15 1 1
github.com/echovault/echovault/internal/aof/log/store.go:106.2,106.51 1 1
github.com/echovault/echovault/internal/aof/log/store.go:106.51,107.13 1 1
github.com/echovault/echovault/internal/aof/log/store.go:107.13,108.8 1 1
github.com/echovault/echovault/internal/aof/log/store.go:108.8,110.40 2 1
github.com/echovault/echovault/internal/aof/log/store.go:110.40,113.11 3 1
github.com/echovault/echovault/internal/aof/log/store.go:107.13,108.8 1 0
github.com/echovault/echovault/internal/aof/log/store.go:108.8,110.40 2 0
github.com/echovault/echovault/internal/aof/log/store.go:110.40,113.11 3 0
github.com/echovault/echovault/internal/aof/log/store.go:115.5,116.41 2 0
github.com/echovault/echovault/internal/aof/log/store.go:121.2,121.19 1 1
github.com/echovault/echovault/internal/aof/log/store.go:124.55,126.21 1 1
@@ -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/config/config.go:64.34,70.24 3 0
github.com/echovault/echovault/internal/config/config.go:70.24,72.35 2 0
github.com/echovault/echovault/internal/config/config.go:72.35,74.5 1 0
@@ -95,13 +143,6 @@ github.com/echovault/echovault/internal/config/config.go:247.2,249.45 2 0
github.com/echovault/echovault/internal/config/config.go:249.45,251.3 1 0
github.com/echovault/echovault/internal/config/config.go:253.2,253.18 1 0
github.com/echovault/echovault/internal/config/default.go:8.29,38.2 1 0
github.com/echovault/echovault/internal/clock/clock.go:14.23,16.43 1 0
github.com/echovault/echovault/internal/clock/clock.go:16.43,18.3 1 0
github.com/echovault/echovault/internal/clock/clock.go:19.2,19.20 1 0
github.com/echovault/echovault/internal/clock/clock.go:24.34,26.2 1 0
github.com/echovault/echovault/internal/clock/clock.go:28.58,30.2 1 0
github.com/echovault/echovault/internal/clock/clock.go:34.34,37.2 2 0
github.com/echovault/echovault/internal/clock/clock.go:39.58,41.2 1 0
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
@@ -157,6 +198,13 @@ 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/clock/clock.go:14.23,16.43 1 0
github.com/echovault/echovault/internal/clock/clock.go:16.43,18.3 1 0
github.com/echovault/echovault/internal/clock/clock.go:19.2,19.20 1 0
github.com/echovault/echovault/internal/clock/clock.go:24.34,26.2 1 0
github.com/echovault/echovault/internal/clock/clock.go:28.58,30.2 1 0
github.com/echovault/echovault/internal/clock/clock.go:34.34,37.2 2 0
github.com/echovault/echovault/internal/clock/clock.go:39.58,41.2 1 0
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
@@ -191,119 +239,6 @@ github.com/echovault/echovault/internal/eviction/lru.go:92.73,94.3 1 0
github.com/echovault/echovault/internal/eviction/lru.go:95.2,95.19 1 0
github.com/echovault/echovault/internal/eviction/lru.go:95.19,97.3 1 0
github.com/echovault/echovault/internal/eviction/lru.go:100.50,103.2 2 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/memberlist/broadcast.go:32.88,35.9 2 0
github.com/echovault/echovault/internal/memberlist/broadcast.go:35.9,37.3 1 0
github.com/echovault/echovault/internal/memberlist/broadcast.go:39.2,39.33 1 0
github.com/echovault/echovault/internal/memberlist/broadcast.go:40.18,42.56 1 0
github.com/echovault/echovault/internal/memberlist/broadcast.go:43.20,45.62 1 0
github.com/echovault/echovault/internal/memberlist/broadcast.go:46.10,47.15 1 0
github.com/echovault/echovault/internal/memberlist/broadcast.go:52.60,55.16 2 0
github.com/echovault/echovault/internal/memberlist/broadcast.go:55.16,58.3 2 0
github.com/echovault/echovault/internal/memberlist/broadcast.go:60.2,60.12 1 0
github.com/echovault/echovault/internal/memberlist/broadcast.go:64.55,66.2 0 0
github.com/echovault/echovault/internal/memberlist/delegate.go:42.47,46.2 1 0
github.com/echovault/echovault/internal/memberlist/delegate.go:49.54,59.16 3 0
github.com/echovault/echovault/internal/memberlist/delegate.go:59.16,61.3 1 0
github.com/echovault/echovault/internal/memberlist/delegate.go:63.2,63.10 1 0
github.com/echovault/echovault/internal/memberlist/delegate.go:67.54,70.55 2 0
github.com/echovault/echovault/internal/memberlist/delegate.go:70.55,73.3 2 0
github.com/echovault/echovault/internal/memberlist/delegate.go:75.2,75.20 1 0
github.com/echovault/echovault/internal/memberlist/delegate.go:76.18,78.39 1 0
github.com/echovault/echovault/internal/memberlist/delegate.go:78.39,81.4 2 0
github.com/echovault/echovault/internal/memberlist/delegate.go:82.3,83.17 2 0
github.com/echovault/echovault/internal/memberlist/delegate.go:83.17,85.4 1 0
github.com/echovault/echovault/internal/memberlist/delegate.go:87.19,89.39 1 0
github.com/echovault/echovault/internal/memberlist/delegate.go:89.39,92.4 2 0
github.com/echovault/echovault/internal/memberlist/delegate.go:94.3,100.67 3 0
github.com/echovault/echovault/internal/memberlist/delegate.go:100.67,102.4 1 0
github.com/echovault/echovault/internal/memberlist/delegate.go:104.20,106.39 1 0
github.com/echovault/echovault/internal/memberlist/delegate.go:106.39,109.4 2 0
github.com/echovault/echovault/internal/memberlist/delegate.go:111.3,116.17 3 0
github.com/echovault/echovault/internal/memberlist/delegate.go:116.17,119.4 2 0
github.com/echovault/echovault/internal/memberlist/delegate.go:121.3,121.67 1 0
github.com/echovault/echovault/internal/memberlist/delegate.go:121.67,123.4 1 0
github.com/echovault/echovault/internal/memberlist/delegate.go:128.71,130.2 1 0
github.com/echovault/echovault/internal/memberlist/delegate.go:133.56,136.2 1 0
github.com/echovault/echovault/internal/memberlist/delegate.go:139.68,141.2 0 0
github.com/echovault/echovault/internal/memberlist/event_delegate.go:33.62,37.2 1 0
github.com/echovault/echovault/internal/memberlist/event_delegate.go:40.71,42.2 1 0
github.com/echovault/echovault/internal/memberlist/event_delegate.go:45.72,52.16 4 0
github.com/echovault/echovault/internal/memberlist/event_delegate.go:52.16,55.3 2 0
github.com/echovault/echovault/internal/memberlist/event_delegate.go:57.2,59.16 2 0
github.com/echovault/echovault/internal/memberlist/event_delegate.go:59.16,61.3 1 0
github.com/echovault/echovault/internal/memberlist/event_delegate.go:65.74,67.2 0 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:54.43,60.2 1 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:62.58,77.28 7 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:77.28,77.49 1 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:78.28,78.49 1 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:82.2,83.41 2 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:83.41,85.3 1 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:87.2,90.16 3 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:90.16,92.3 1 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:94.2,94.37 1 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:94.37,97.70 2 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:97.70,99.18 2 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:99.18,101.5 1 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:102.4,102.14 1 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:105.3,105.17 1 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:105.17,107.4 1 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:109.3,109.27 1 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:113.45,123.2 2 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:127.72,140.2 2 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:144.75,157.2 2 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:159.43,162.16 2 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:162.16,164.3 1 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:166.2,167.16 2 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:167.16,169.3 1 0
github.com/echovault/echovault/internal/memberlist/memberlist.go:171.2,171.49 1 0
github.com/echovault/echovault/internal/modules/acl/acl.go:52.40,57.24 3 1
github.com/echovault/echovault/internal/modules/acl/acl.go:57.24,65.3 2 1
github.com/echovault/echovault/internal/modules/acl/acl.go:68.2,68.28 1 1
@@ -1069,7 +1004,7 @@ 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 0
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 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
@@ -1389,99 +1324,6 @@ github.com/echovault/echovault/internal/modules/list/key_funcs.go:115.2,119.8 1
github.com/echovault/echovault/internal/modules/list/key_funcs.go:122.75,123.19 1 1
github.com/echovault/echovault/internal/modules/list/key_funcs.go:123.19,125.3 1 1
github.com/echovault/echovault/internal/modules/list/key_funcs.go:126.2,130.8 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/internal/modules/pubsub/channel.go:34.51,35.32 1 1
github.com/echovault/echovault/internal/modules/pubsub/channel.go:35.32,37.3 1 1
github.com/echovault/echovault/internal/modules/pubsub/channel.go:41.57,42.32 1 1
@@ -1925,6 +1767,99 @@ github.com/echovault/echovault/internal/modules/set/set.go:184.31,185.19 1 1
github.com/echovault/echovault/internal/modules/set/set.go:186.9,187.17 1 1
github.com/echovault/echovault/internal/modules/set/set.go:188.9,191.15 3 1
github.com/echovault/echovault/internal/modules/set/set.go:192.10,195.28 3 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/internal/modules/sorted_set/commands.go:29.68,31.16 2 1
github.com/echovault/echovault/internal/modules/sorted_set/commands.go:31.16,33.3 1 0
github.com/echovault/echovault/internal/modules/sorted_set/commands.go:35.2,45.43 8 1
@@ -2748,6 +2683,69 @@ github.com/echovault/echovault/internal/modules/sorted_set/utils.go:162.3,162.13
github.com/echovault/echovault/internal/modules/sorted_set/utils.go:163.12,164.16 1 1
github.com/echovault/echovault/internal/modules/sorted_set/utils.go:164.16,166.4 1 1
github.com/echovault/echovault/internal/modules/sorted_set/utils.go:167.3,167.13 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:24.72,26.16 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:26.16,28.3 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:30.2,34.9 4 1
github.com/echovault/echovault/internal/modules/string/commands.go:34.9,36.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:38.2,40.16 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:40.16,42.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:44.2,45.9 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:45.9,47.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:50.2,50.24 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:50.24,52.94 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:52.94,54.4 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:55.3,55.58 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:59.2,59.16 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:59.16,61.94 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:61.94,63.4 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:64.3,64.58 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:67.2,69.35 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:69.35,71.24 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:71.24,74.12 3 1
github.com/echovault/echovault/internal/modules/string/commands.go:77.3,78.8 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:81.2,81.103 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:81.103,83.3 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:85.2,85.59 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:88.70,90.16 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:90.16,92.3 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:94.2,97.16 3 1
github.com/echovault/echovault/internal/modules/string/commands.go:97.16,99.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:101.2,103.9 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:103.9,105.3 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:107.2,107.56 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:110.70,112.16 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:112.16,114.3 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:116.2,123.24 6 1
github.com/echovault/echovault/internal/modules/string/commands.go:123.24,125.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:127.2,127.16 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:127.16,129.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:131.2,132.9 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:132.9,134.3 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:136.2,136.15 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:136.15,138.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:139.2,139.13 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:139.13,141.3 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:143.2,143.30 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:143.30,145.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:147.2,147.22 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:147.22,149.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:151.2,151.17 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:151.17,154.3 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:156.2,158.14 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:158.14,160.38 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:160.38,162.4 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:163.3,163.12 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:166.2,166.65 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:169.36,209.2 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:23.78,24.19 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:24.19,26.3 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:27.2,31.8 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:34.76,35.19 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:35.19,37.3 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:38.2,42.8 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:45.76,46.19 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:46.19,48.3 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:49.2,53.8 1 1
github.com/echovault/echovault/internal/snapshot/snapshot.go:55.56,56.30 1 1
github.com/echovault/echovault/internal/snapshot/snapshot.go:56.30,58.3 1 1
github.com/echovault/echovault/internal/snapshot/snapshot.go:61.59,62.30 1 1
@@ -2850,225 +2848,82 @@ 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/string/commands.go:24.72,26.16 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:26.16,28.3 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:30.2,34.9 4 1
github.com/echovault/echovault/internal/modules/string/commands.go:34.9,36.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:38.2,40.16 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:40.16,42.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:44.2,45.9 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:45.9,47.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:50.2,50.24 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:50.24,52.94 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:52.94,54.4 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:55.3,55.58 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:59.2,59.16 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:59.16,61.94 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:61.94,63.4 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:64.3,64.58 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:67.2,69.35 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:69.35,71.24 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:71.24,74.12 3 1
github.com/echovault/echovault/internal/modules/string/commands.go:77.3,78.8 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:81.2,81.103 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:81.103,83.3 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:85.2,85.59 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:88.70,90.16 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:90.16,92.3 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:94.2,97.16 3 1
github.com/echovault/echovault/internal/modules/string/commands.go:97.16,99.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:101.2,103.9 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:103.9,105.3 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:107.2,107.56 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:110.70,112.16 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:112.16,114.3 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:116.2,123.24 6 1
github.com/echovault/echovault/internal/modules/string/commands.go:123.24,125.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:127.2,127.16 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:127.16,129.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:131.2,132.9 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:132.9,134.3 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:136.2,136.15 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:136.15,138.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:139.2,139.13 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:139.13,141.3 1 0
github.com/echovault/echovault/internal/modules/string/commands.go:143.2,143.30 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:143.30,145.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:147.2,147.22 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:147.22,149.3 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:151.2,151.17 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:151.17,154.3 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:156.2,158.14 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:158.14,160.38 2 1
github.com/echovault/echovault/internal/modules/string/commands.go:160.38,162.4 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:163.3,163.12 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:166.2,166.65 1 1
github.com/echovault/echovault/internal/modules/string/commands.go:169.36,209.2 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:23.78,24.19 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:24.19,26.3 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:27.2,31.8 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:34.76,35.19 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:35.19,37.3 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:38.2,42.8 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:45.76,46.19 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:46.19,48.3 1 1
github.com/echovault/echovault/internal/modules/string/key_funcs.go:49.2,53.8 1 1
github.com/echovault/echovault/internal/raft/fsm.go:48.36,52.2 1 0
github.com/echovault/echovault/internal/raft/fsm.go:55.50,56.18 1 0
github.com/echovault/echovault/internal/raft/fsm.go:57.10,57.10 0 0
github.com/echovault/echovault/internal/raft/fsm.go:59.23,62.60 2 0
github.com/echovault/echovault/internal/raft/fsm.go:62.60,67.4 1 0
github.com/echovault/echovault/internal/raft/fsm.go:69.3,72.40 3 0
github.com/echovault/echovault/internal/raft/fsm.go:73.11,77.5 1 0
github.com/echovault/echovault/internal/raft/fsm.go:79.21,80.61 1 0
github.com/echovault/echovault/internal/raft/fsm.go:80.61,85.5 1 0
github.com/echovault/echovault/internal/raft/fsm.go:86.4,89.5 1 0
github.com/echovault/echovault/internal/raft/fsm.go:91.18,94.18 2 0
github.com/echovault/echovault/internal/raft/fsm.go:94.18,99.5 1 0
github.com/echovault/echovault/internal/raft/fsm.go:101.4,104.18 3 0
github.com/echovault/echovault/internal/raft/fsm.go:104.18,109.5 1 0
github.com/echovault/echovault/internal/raft/fsm.go:110.4,111.10 2 0
github.com/echovault/echovault/internal/raft/fsm.go:111.10,113.5 1 0
github.com/echovault/echovault/internal/raft/fsm.go:115.4,115.96 1 0
github.com/echovault/echovault/internal/raft/fsm.go:115.96,120.5 1 0
github.com/echovault/echovault/internal/raft/fsm.go:120.10,125.5 1 0
github.com/echovault/echovault/internal/raft/fsm.go:129.2,129.12 1 0
github.com/echovault/echovault/internal/raft/fsm.go:133.54,141.2 1 0
github.com/echovault/echovault/internal/raft/fsm.go:144.55,147.16 2 0
github.com/echovault/echovault/internal/raft/fsm.go:147.16,150.3 2 0
github.com/echovault/echovault/internal/raft/fsm.go:152.2,157.48 2 0
github.com/echovault/echovault/internal/raft/fsm.go:157.48,160.3 2 0
github.com/echovault/echovault/internal/raft/fsm.go:163.2,164.71 2 0
github.com/echovault/echovault/internal/raft/fsm.go:164.71,165.87 1 0
github.com/echovault/echovault/internal/raft/fsm.go:165.87,167.4 1 0
github.com/echovault/echovault/internal/raft/fsm.go:168.3,168.51 1 0
github.com/echovault/echovault/internal/raft/fsm.go:171.2,173.12 2 0
github.com/echovault/echovault/internal/raft/fsm_snapshot.go:39.50,43.2 1 0
github.com/echovault/echovault/internal/raft/fsm_snapshot.go:46.58,50.16 3 0
github.com/echovault/echovault/internal/raft/fsm_snapshot.go:50.16,53.3 2 0
github.com/echovault/echovault/internal/raft/fsm_snapshot.go:55.2,62.16 3 0
github.com/echovault/echovault/internal/raft/fsm_snapshot.go:62.16,65.3 2 0
github.com/echovault/echovault/internal/raft/fsm_snapshot.go:67.2,67.40 1 0
github.com/echovault/echovault/internal/raft/fsm_snapshot.go:67.40,70.3 2 0
github.com/echovault/echovault/internal/raft/fsm_snapshot.go:72.2,74.12 2 0
github.com/echovault/echovault/internal/raft/fsm_snapshot.go:78.30,80.2 1 0
github.com/echovault/echovault/internal/raft/raft.go:52.31,56.2 1 0
github.com/echovault/echovault/internal/raft/raft.go:58.46,70.19 9 0
github.com/echovault/echovault/internal/raft/raft.go:70.19,74.3 3 0
github.com/echovault/echovault/internal/raft/raft.go:74.8,76.17 2 0
github.com/echovault/echovault/internal/raft/raft.go:76.17,78.4 1 0
github.com/echovault/echovault/internal/raft/raft.go:80.3,81.17 2 0
github.com/echovault/echovault/internal/raft/raft.go:81.17,83.4 1 0
github.com/echovault/echovault/internal/raft/raft.go:85.3,88.17 3 0
github.com/echovault/echovault/internal/raft/raft.go:88.17,90.4 1 0
github.com/echovault/echovault/internal/raft/raft.go:93.2,96.16 3 0
github.com/echovault/echovault/internal/raft/raft.go:96.16,98.3 1 0
github.com/echovault/echovault/internal/raft/raft.go:100.2,108.16 2 0
github.com/echovault/echovault/internal/raft/raft.go:108.16,110.3 1 0
github.com/echovault/echovault/internal/raft/raft.go:113.2,133.16 2 0
github.com/echovault/echovault/internal/raft/raft.go:133.16,135.3 1 0
github.com/echovault/echovault/internal/raft/raft.go:137.2,137.27 1 0
github.com/echovault/echovault/internal/raft/raft.go:137.27,148.3 1 0
github.com/echovault/echovault/internal/raft/raft.go:150.2,150.21 1 0
github.com/echovault/echovault/internal/raft/raft.go:153.74,155.2 1 0
github.com/echovault/echovault/internal/raft/raft.go:157.36,159.2 1 0
github.com/echovault/echovault/internal/raft/raft.go:161.38,163.2 1 0
github.com/echovault/echovault/internal/raft/raft.go:165.40,172.2 4 0
github.com/echovault/echovault/internal/raft/raft.go:179.9,180.22 1 0
github.com/echovault/echovault/internal/raft/raft.go:180.22,182.44 2 0
github.com/echovault/echovault/internal/raft/raft.go:182.44,184.4 1 0
github.com/echovault/echovault/internal/raft/raft.go:186.3,186.56 1 0
github.com/echovault/echovault/internal/raft/raft.go:186.56,188.42 1 0
github.com/echovault/echovault/internal/raft/raft.go:188.42,190.5 1 0
github.com/echovault/echovault/internal/raft/raft.go:193.3,194.17 2 0
github.com/echovault/echovault/internal/raft/raft.go:194.17,196.4 1 0
github.com/echovault/echovault/internal/raft/raft.go:199.2,199.12 1 0
github.com/echovault/echovault/internal/raft/raft.go:202.61,203.23 1 0
github.com/echovault/echovault/internal/raft/raft.go:203.23,205.3 1 0
github.com/echovault/echovault/internal/raft/raft.go:207.2,207.73 1 0
github.com/echovault/echovault/internal/raft/raft.go:207.73,209.3 1 0
github.com/echovault/echovault/internal/raft/raft.go:211.2,211.12 1 0
github.com/echovault/echovault/internal/raft/raft.go:214.37,216.2 1 0
github.com/echovault/echovault/internal/raft/raft.go:218.31,220.22 1 0
github.com/echovault/echovault/internal/raft/raft.go:220.22,222.17 2 0
github.com/echovault/echovault/internal/raft/raft.go:222.17,224.4 1 0
github.com/echovault/echovault/internal/raft/raft.go:225.3,225.49 1 0
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
github.com/echovault/echovault/echovault/api_acl.go:126.71,128.23 2 1
github.com/echovault/echovault/echovault/api_acl.go:128.23,130.3 1 1
github.com/echovault/echovault/echovault/api_acl.go:131.2,132.16 2 1
github.com/echovault/echovault/echovault/api_acl.go:132.16,134.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:135.2,135.45 1 0
github.com/echovault/echovault/echovault/api_acl.go:139.55,141.16 2 0
github.com/echovault/echovault/echovault/api_acl.go:135.2,135.45 1 1
github.com/echovault/echovault/echovault/api_acl.go:139.55,141.16 2 1
github.com/echovault/echovault/echovault/api_acl.go:141.16,143.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:144.2,144.45 1 0
github.com/echovault/echovault/echovault/api_acl.go:155.62,158.18 2 0
github.com/echovault/echovault/echovault/api_acl.go:158.18,160.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:144.2,144.45 1 1
github.com/echovault/echovault/echovault/api_acl.go:155.62,158.18 2 1
github.com/echovault/echovault/echovault/api_acl.go:158.18,160.3 1 1
github.com/echovault/echovault/echovault/api_acl.go:160.8,162.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:164.2,164.21 1 0
github.com/echovault/echovault/echovault/api_acl.go:164.21,166.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:168.2,168.17 1 0
github.com/echovault/echovault/echovault/api_acl.go:168.17,170.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:172.2,172.21 1 0
github.com/echovault/echovault/echovault/api_acl.go:172.21,174.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:176.2,176.20 1 0
github.com/echovault/echovault/echovault/api_acl.go:164.2,164.21 1 1
github.com/echovault/echovault/echovault/api_acl.go:164.21,166.3 1 1
github.com/echovault/echovault/echovault/api_acl.go:168.2,168.17 1 1
github.com/echovault/echovault/echovault/api_acl.go:168.17,170.3 1 1
github.com/echovault/echovault/echovault/api_acl.go:172.2,172.21 1 1
github.com/echovault/echovault/echovault/api_acl.go:172.21,174.3 1 1
github.com/echovault/echovault/echovault/api_acl.go:176.2,176.20 1 1
github.com/echovault/echovault/echovault/api_acl.go:176.20,178.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:180.2,180.20 1 0
github.com/echovault/echovault/echovault/api_acl.go:180.2,180.20 1 1
github.com/echovault/echovault/echovault/api_acl.go:180.20,182.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:184.2,184.24 1 0
github.com/echovault/echovault/echovault/api_acl.go:184.2,184.24 1 1
github.com/echovault/echovault/echovault/api_acl.go:184.24,186.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:188.2,188.50 1 0
github.com/echovault/echovault/echovault/api_acl.go:188.50,190.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:192.2,192.53 1 0
github.com/echovault/echovault/echovault/api_acl.go:188.2,188.50 1 1
github.com/echovault/echovault/echovault/api_acl.go:188.50,190.3 1 1
github.com/echovault/echovault/echovault/api_acl.go:192.2,192.53 1 1
github.com/echovault/echovault/echovault/api_acl.go:192.53,194.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:196.2,196.49 1 0
github.com/echovault/echovault/echovault/api_acl.go:196.49,198.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:200.2,200.52 1 0
github.com/echovault/echovault/echovault/api_acl.go:196.2,196.49 1 1
github.com/echovault/echovault/echovault/api_acl.go:196.49,198.3 1 1
github.com/echovault/echovault/echovault/api_acl.go:200.2,200.52 1 1
github.com/echovault/echovault/echovault/api_acl.go:200.52,202.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:204.2,204.50 1 0
github.com/echovault/echovault/echovault/api_acl.go:204.50,206.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:208.2,208.50 1 0
github.com/echovault/echovault/echovault/api_acl.go:208.50,210.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:212.2,212.47 1 0
github.com/echovault/echovault/echovault/api_acl.go:212.47,214.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:216.2,216.47 1 0
github.com/echovault/echovault/echovault/api_acl.go:216.47,218.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:220.2,220.48 1 0
github.com/echovault/echovault/echovault/api_acl.go:220.48,222.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:224.2,224.43 1 0
github.com/echovault/echovault/echovault/api_acl.go:224.43,226.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:228.2,228.44 1 0
github.com/echovault/echovault/echovault/api_acl.go:228.44,230.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:232.2,232.47 1 0
github.com/echovault/echovault/echovault/api_acl.go:232.47,234.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:236.2,236.47 1 0
github.com/echovault/echovault/echovault/api_acl.go:236.47,238.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:240.2,241.16 2 0
github.com/echovault/echovault/echovault/api_acl.go:204.2,204.50 1 1
github.com/echovault/echovault/echovault/api_acl.go:204.50,206.3 1 1
github.com/echovault/echovault/echovault/api_acl.go:208.2,208.50 1 1
github.com/echovault/echovault/echovault/api_acl.go:208.50,210.3 1 1
github.com/echovault/echovault/echovault/api_acl.go:212.2,212.47 1 1
github.com/echovault/echovault/echovault/api_acl.go:212.47,214.3 1 1
github.com/echovault/echovault/echovault/api_acl.go:216.2,216.47 1 1
github.com/echovault/echovault/echovault/api_acl.go:216.47,218.3 1 1
github.com/echovault/echovault/echovault/api_acl.go:220.2,220.48 1 1
github.com/echovault/echovault/echovault/api_acl.go:220.48,222.3 1 1
github.com/echovault/echovault/echovault/api_acl.go:224.2,224.43 1 1
github.com/echovault/echovault/echovault/api_acl.go:224.43,226.3 1 1
github.com/echovault/echovault/echovault/api_acl.go:228.2,228.44 1 1
github.com/echovault/echovault/echovault/api_acl.go:228.44,230.3 1 1
github.com/echovault/echovault/echovault/api_acl.go:232.2,232.47 1 1
github.com/echovault/echovault/echovault/api_acl.go:232.47,234.3 1 1
github.com/echovault/echovault/echovault/api_acl.go:236.2,236.47 1 1
github.com/echovault/echovault/echovault/api_acl.go:236.47,238.3 1 1
github.com/echovault/echovault/echovault/api_acl.go:240.2,241.16 2 1
github.com/echovault/echovault/echovault/api_acl.go:241.16,243.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:245.2,246.40 2 0
github.com/echovault/echovault/echovault/api_acl.go:293.83,295.16 2 0
github.com/echovault/echovault/echovault/api_acl.go:245.2,246.40 2 1
github.com/echovault/echovault/echovault/api_acl.go:293.83,295.16 2 1
github.com/echovault/echovault/echovault/api_acl.go:295.16,297.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:299.2,301.16 3 0
github.com/echovault/echovault/echovault/api_acl.go:299.2,301.16 3 1
github.com/echovault/echovault/echovault/api_acl.go:301.16,303.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:305.2,308.35 3 0
github.com/echovault/echovault/echovault/api_acl.go:308.35,314.35 4 0
github.com/echovault/echovault/echovault/api_acl.go:314.35,316.4 1 0
github.com/echovault/echovault/echovault/api_acl.go:319.2,319.20 1 0
github.com/echovault/echovault/echovault/api_acl.go:329.72,332.16 3 0
github.com/echovault/echovault/echovault/api_acl.go:332.16,334.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:335.2,336.40 2 0
github.com/echovault/echovault/echovault/api_acl.go:340.54,342.16 2 0
github.com/echovault/echovault/echovault/api_acl.go:342.16,344.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:345.2,345.45 1 0
github.com/echovault/echovault/echovault/api_acl.go:356.72,358.9 2 0
github.com/echovault/echovault/echovault/api_acl.go:359.21,360.29 1 0
github.com/echovault/echovault/echovault/api_acl.go:361.23,362.31 1 0
github.com/echovault/echovault/echovault/api_acl.go:363.10,364.31 1 0
github.com/echovault/echovault/echovault/api_acl.go:367.2,368.16 2 0
github.com/echovault/echovault/echovault/api_acl.go:368.16,370.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:372.2,373.40 2 0
github.com/echovault/echovault/echovault/api_acl.go:379.50,381.16 2 0
github.com/echovault/echovault/echovault/api_acl.go:381.16,383.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:384.2,385.40 2 0
github.com/echovault/echovault/echovault/api_acl.go:305.2,309.35 3 1
github.com/echovault/echovault/echovault/api_acl.go:309.35,315.35 4 1
github.com/echovault/echovault/echovault/api_acl.go:315.35,317.4 1 1
github.com/echovault/echovault/echovault/api_acl.go:320.2,320.20 1 1
github.com/echovault/echovault/echovault/api_acl.go:330.72,333.16 3 1
github.com/echovault/echovault/echovault/api_acl.go:333.16,335.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:336.2,337.40 2 1
github.com/echovault/echovault/echovault/api_acl.go:341.54,343.16 2 1
github.com/echovault/echovault/echovault/api_acl.go:343.16,345.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:346.2,346.45 1 1
github.com/echovault/echovault/echovault/api_acl.go:357.72,359.9 2 0
github.com/echovault/echovault/echovault/api_acl.go:360.21,361.29 1 0
github.com/echovault/echovault/echovault/api_acl.go:362.23,363.31 1 0
github.com/echovault/echovault/echovault/api_acl.go:364.10,365.31 1 0
github.com/echovault/echovault/echovault/api_acl.go:368.2,369.16 2 0
github.com/echovault/echovault/echovault/api_acl.go:369.16,371.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:373.2,374.40 2 0
github.com/echovault/echovault/echovault/api_acl.go:380.50,382.16 2 1
github.com/echovault/echovault/echovault/api_acl.go:382.16,384.3 1 0
github.com/echovault/echovault/echovault/api_acl.go:385.2,386.40 2 1
github.com/echovault/echovault/echovault/api_admin.go:142.84,145.9 2 0
github.com/echovault/echovault/echovault/api_admin.go:146.28,147.71 1 0
github.com/echovault/echovault/echovault/api_admin.go:148.29,149.73 1 0
@@ -3639,7 +3494,7 @@ github.com/echovault/echovault/echovault/echovault.go:162.48,163.52 1 0
github.com/echovault/echovault/echovault/echovault.go:163.52,165.12 2 0
github.com/echovault/echovault/echovault/echovault.go:167.3,167.41 1 0
github.com/echovault/echovault/echovault/echovault.go:171.2,171.52 1 1
github.com/echovault/echovault/echovault/echovault.go:171.52,173.3 1 0
github.com/echovault/echovault/echovault/echovault.go:171.52,173.3 1 1
github.com/echovault/echovault/echovault/echovault.go:176.2,176.42 1 1
github.com/echovault/echovault/echovault/echovault.go:176.42,178.3 1 1
github.com/echovault/echovault/echovault/echovault.go:181.2,182.40 2 1
@@ -4000,7 +3855,8 @@ github.com/echovault/echovault/echovault/plugin.go:181.61,183.4 1 1
github.com/echovault/echovault/echovault/plugin.go:183.6,185.4 1 1
github.com/echovault/echovault/echovault/plugin.go:187.2,187.16 1 1
github.com/echovault/echovault/echovault/test_helpers.go:9.35,16.2 2 1
github.com/echovault/echovault/echovault/test_helpers.go:18.95,19.82 1 1
github.com/echovault/echovault/echovault/test_helpers.go:19.82,21.3 1 0
github.com/echovault/echovault/echovault/test_helpers.go:22.2,22.12 1 1
github.com/echovault/echovault/echovault/test_helpers.go:25.95,28.2 2 1
github.com/echovault/echovault/echovault/test_helpers.go:18.63,23.2 2 1
github.com/echovault/echovault/echovault/test_helpers.go:25.95,26.82 1 1
github.com/echovault/echovault/echovault/test_helpers.go:26.82,28.3 1 0
github.com/echovault/echovault/echovault/test_helpers.go:29.2,29.12 1 1
github.com/echovault/echovault/echovault/test_helpers.go:32.95,35.2 2 1

View File

@@ -303,7 +303,8 @@ func (server *EchoVault) ACLGetUser(username string) (map[string][]string, error
}
arr := v.Array()
result := make(map[string][]string, len(arr)/2)
result := make(map[string][]string)
for i := 0; i < len(arr); i += 2 {
key := arr[i].String()
@@ -312,7 +313,7 @@ func (server *EchoVault) ACLGetUser(username string) (map[string][]string, error
result[key] = make([]string, len(value))
for j := 0; j < len(value); j++ {
result[key][i] = value[i].String()
result[key][j] = value[j].String()
}
}

View File

@@ -13,3 +13,266 @@
// limitations under the License.
package echovault
import (
"crypto/sha256"
"fmt"
"github.com/echovault/echovault/internal/constants"
"slices"
"strings"
"testing"
)
func TestEchoVault_ACLCat(t *testing.T) {
server := createEchoVault()
getCategoryCommands := func(category string) []string {
var commands []string
for _, command := range server.commands {
if slices.Contains(command.Categories, category) && (command.SubCommands == nil || len(command.SubCommands) == 0) {
commands = append(commands, strings.ToLower(command.Command))
continue
}
for _, subcommand := range command.SubCommands {
if slices.Contains(subcommand.Categories, category) {
commands = append(commands, strings.ToLower(fmt.Sprintf("%s|%s", command.Command, subcommand.Command)))
}
}
}
return commands
}
tests := []struct {
name string
args []string
want []string
wantErr bool
}{
{
name: "1. Get all ACL categories loaded on the server",
args: make([]string, 0),
want: []string{
constants.AdminCategory, constants.ConnectionCategory, constants.DangerousCategory,
constants.HashCategory, constants.FastCategory, constants.KeyspaceCategory, constants.ListCategory,
constants.PubSubCategory, constants.ReadCategory, constants.WriteCategory, constants.SetCategory,
constants.SortedSetCategory, constants.SlowCategory, constants.StringCategory,
},
wantErr: false,
},
{
name: "2. Get all commands within the admin category",
args: []string{constants.AdminCategory},
want: getCategoryCommands(constants.AdminCategory),
wantErr: false,
},
{
name: "3. Get all commands within the connection category",
args: []string{constants.ConnectionCategory},
want: getCategoryCommands(constants.ConnectionCategory),
wantErr: false,
},
{
name: "4. Get all the commands within the dangerous category",
args: []string{constants.DangerousCategory},
want: getCategoryCommands(constants.DangerousCategory),
wantErr: false,
},
{
name: "5. Get all the commands within the hash category",
args: []string{constants.HashCategory},
want: getCategoryCommands(constants.HashCategory),
wantErr: false,
},
{
name: "6. Get all the commands within the fast category",
args: []string{constants.FastCategory},
want: getCategoryCommands(constants.FastCategory),
wantErr: false,
},
{
name: "7. Get all the commands within the keyspace category",
args: []string{constants.KeyspaceCategory},
want: getCategoryCommands(constants.KeyspaceCategory),
wantErr: false,
},
{
name: "8. Get all the commands within the list category",
args: []string{constants.ListCategory},
want: getCategoryCommands(constants.ListCategory),
wantErr: false,
},
{
name: "9. Get all the commands within the pubsub category",
args: []string{constants.PubSubCategory},
want: getCategoryCommands(constants.PubSubCategory),
wantErr: false,
},
{
name: "10. Get all the commands within the read category",
args: []string{constants.ReadCategory},
want: getCategoryCommands(constants.ReadCategory),
wantErr: false,
},
{
name: "11. Get all the commands within the write category",
args: []string{constants.WriteCategory},
want: getCategoryCommands(constants.WriteCategory),
wantErr: false,
},
{
name: "12. Get all the commands within the set category",
args: []string{constants.SetCategory},
want: getCategoryCommands(constants.SetCategory),
wantErr: false,
},
{
name: "13. Get all the commands within the sortedset category",
args: []string{constants.SortedSetCategory},
want: getCategoryCommands(constants.SortedSetCategory),
wantErr: false,
},
{
name: "14. Get all the commands within the slow category",
args: []string{constants.SlowCategory},
want: getCategoryCommands(constants.SlowCategory),
wantErr: false,
},
{
name: "15. Get all the commands within the string category",
args: []string{constants.StringCategory},
want: getCategoryCommands(constants.StringCategory),
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := server.ACLCat(tt.args...)
if (err != nil) != tt.wantErr {
t.Errorf("ACLCat() error = %v, wantErr %v", err, tt.wantErr)
return
}
if len(got) != len(tt.want) {
t.Errorf("ACLCat() got length = %d, want length %d", len(got), len(tt.want))
}
for _, item := range got {
if !slices.Contains(tt.want, item) {
t.Errorf("ACLCat() got unexpected element = %s, want %v", item, tt.want)
}
}
})
}
}
func TestEchoVault_ACLUsers(t *testing.T) {
server := createEchoVault()
// Set Users
users := []User{
{
Username: "user1",
Enabled: true,
NoPassword: true,
NoKeys: true,
NoCommands: true,
AddPlainPasswords: []string{},
AddHashPasswords: []string{},
IncludeCategories: []string{},
IncludeReadWriteKeys: []string{},
IncludeReadKeys: []string{},
IncludeWriteKeys: []string{},
IncludeChannels: []string{},
ExcludeChannels: []string{},
},
{
Username: "user2",
Enabled: true,
NoPassword: false,
NoKeys: false,
NoCommands: false,
AddPlainPasswords: []string{"password1", "password2"},
AddHashPasswords: []string{
func() string {
h := sha256.New()
h.Write([]byte("password1"))
return string(h.Sum(nil))
}(),
},
IncludeCategories: []string{constants.FastCategory, constants.SlowCategory, constants.HashCategory},
ExcludeCategories: []string{constants.AdminCategory, constants.DangerousCategory},
IncludeCommands: []string{"*"},
ExcludeCommands: []string{"acl|load", "acl|save"},
IncludeReadWriteKeys: []string{"user2-profile-*"},
IncludeReadKeys: []string{"user2-privileges-*"},
IncludeWriteKeys: []string{"write-key"},
IncludeChannels: []string{"posts-*"},
ExcludeChannels: []string{"actions-*"},
},
}
for _, user := range users {
ok, err := server.ACLSetUser(user)
if err != nil {
t.Errorf("ACLSetUser() err = %v", err)
}
if !ok {
t.Errorf("ACLSetUser() ok = %v", ok)
}
}
// Get users
aclUsers, err := server.ACLUsers()
if err != nil {
t.Errorf("ACLUsers() err = %v", err)
}
if len(aclUsers) != len(users)+1 {
t.Errorf("ACLUsers() got length %d, want %d", len(aclUsers), len(users)+1)
}
for _, username := range aclUsers {
if !slices.Contains([]string{"default", "user1", "user2"}, username) {
t.Errorf("ACLUsers() unexpected username = %s", username)
}
}
// Get specific user.
user, err := server.ACLGetUser("user2")
if err != nil {
t.Errorf("ACLGetUser() err = %v", err)
}
if user == nil {
t.Errorf("ACLGetUser() user is nil")
}
// Delete user
ok, err := server.ACLDelUser("user1")
if err != nil {
t.Errorf("ACLDelUser() err = %v", err)
}
if !ok {
t.Errorf("ACLDelUser() could not delete user user1")
}
aclUsers, err = server.ACLUsers()
if err != nil {
t.Errorf("ACLDelUser() err = %v", err)
}
if slices.Contains(aclUsers, "user1") {
t.Errorf("ACLDelUser() unexpected username user1")
}
// Get list of currently loaded ACL rules.
list, err := server.ACLList()
if err != nil {
t.Errorf("ACLList() err = %v", err)
}
if len(list) != 2 {
t.Errorf("ACLList() got list length %d, want %d", len(list), 2)
}
// Save the current ACL rules
ok, err = server.ACLSave()
if err != nil {
t.Errorf("ACLSave() err = %v", err)
}
if !ok {
t.Errorf("ACLSave() could not save ACL file")
}
}

View File

@@ -300,7 +300,7 @@ func TestEchoVault_RemoveCommand(t *testing.T) {
func TestEchoVault_Plugins(t *testing.T) {
t.Cleanup(func() {
_ = os.RemoveAll("./testdata")
_ = os.RemoveAll("./testdata/modules")
})
server := createEchoVault()

View File

@@ -15,6 +15,13 @@ func createEchoVault() *EchoVault {
return ev
}
func createEchoVaultWithConfig(conf config.Config) *EchoVault {
ev, _ := NewEchoVault(
WithConfig(conf),
)
return ev
}
func presetValue(server *EchoVault, ctx context.Context, key string, value interface{}) error {
if err := server.setValues(ctx, map[string]interface{}{key: value}); err != nil {
return err