@@ -144,3 +144,64 @@ def test_default_set_get_3_runs(env):
144144 overall_request_count = agg_info_commandstats (master_nodes_connections , merged_command_stats )
145145 assert_minimum_memtier_outcomes (config , env , memtier_ok , merged_command_stats , overall_expected_request_count ,
146146 overall_request_count )
147+
148+
149+ def test_key_placeholder (env ):
150+ env .skipOnCluster ()
151+ run_count = 1
152+ benchmark_specs = {"name" : env .testName , "args" : ['--command=HSET __key__ f __data__' ]}
153+ addTLSArgs (benchmark_specs , env )
154+ config = get_default_memtier_config ()
155+ master_nodes_list = env .getMasterNodesList ()
156+ overall_expected_request_count = get_expected_request_count (config ) * run_count
157+
158+ add_required_env_arguments (benchmark_specs , config , env , master_nodes_list )
159+
160+ # Create a temporary directory
161+ test_dir = tempfile .mkdtemp ()
162+
163+ config = RunConfig (test_dir , env .testName , config , {})
164+ ensure_clean_benchmark_folder (config .results_dir )
165+
166+ benchmark = Benchmark .from_json (config , benchmark_specs )
167+
168+ # benchmark.run() returns True if the return code of memtier_benchmark was 0
169+ memtier_ok = benchmark .run ()
170+ debugPrintMemtierOnError (config , env , memtier_ok )
171+
172+ master_nodes_connections = env .getOSSMasterNodesConnectionList ()
173+ merged_command_stats = {'cmdstat_hset' : {'calls' : 0 }}
174+ overall_request_count = agg_info_commandstats (master_nodes_connections , merged_command_stats )
175+ assert_minimum_memtier_outcomes (config , env , memtier_ok , merged_command_stats , overall_expected_request_count ,
176+ overall_request_count )
177+
178+
179+ # key placeholder combined with other data
180+ def test_key_placeholder_togetherwithdata (env ):
181+ env .skipOnCluster ()
182+ run_count = 1
183+ benchmark_specs = {"name" : env .testName , "args" : ['--command=HSET prefix:__key__:suffix f __data__' ]}
184+ addTLSArgs (benchmark_specs , env )
185+ config = get_default_memtier_config ()
186+ master_nodes_list = env .getMasterNodesList ()
187+ overall_expected_request_count = get_expected_request_count (config ) * run_count
188+
189+ add_required_env_arguments (benchmark_specs , config , env , master_nodes_list )
190+
191+ # Create a temporary directory
192+ test_dir = tempfile .mkdtemp ()
193+
194+ config = RunConfig (test_dir , env .testName , config , {})
195+ ensure_clean_benchmark_folder (config .results_dir )
196+
197+ benchmark = Benchmark .from_json (config , benchmark_specs )
198+
199+ # benchmark.run() returns True if the return code of memtier_benchmark was 0
200+ memtier_ok = benchmark .run ()
201+ debugPrintMemtierOnError (config , env , memtier_ok )
202+
203+ master_nodes_connections = env .getOSSMasterNodesConnectionList ()
204+ merged_command_stats = {'cmdstat_hset' : {'calls' : 0 }}
205+ overall_request_count = agg_info_commandstats (master_nodes_connections , merged_command_stats )
206+ assert_minimum_memtier_outcomes (config , env , memtier_ok , merged_command_stats , overall_expected_request_count ,
207+ overall_request_count )
0 commit comments