Skip to content

Commit

Permalink
New test cases for metering
Browse files Browse the repository at this point in the history
Change-Id: I51f265c224865209244fd0eeb925234b7ef13df7
Reviewed-on: https://review.couchbase.org/c/testrunner/+/179259
Reviewed-by: Ajay Bhullar <ajay.bhullar@couchbase.com>
Tested-by: Pierre Regazzoni <pierre.regazzoni@couchbase.com>
  • Loading branch information
pierrecouch committed Aug 25, 2022
1 parent b07ef19 commit 76f29aa
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
5 changes: 5 additions & 0 deletions conf/tuq/py-tuq-metering.conf
Expand Up @@ -29,5 +29,10 @@ tuqquery.tuq_metering.QueryMeteringTests:
test_kv_select_meta,doc_count=12,value_size=4096
test_kv_prepare
test_kv_inline_udf
# MB-52943
# test_no_rw_unit,statement=advise
test_no_rw_unit,statement=explain
test_no_rw_unit,statement=catalog
test_no_rw_unit,statement=query1


26 changes: 26 additions & 0 deletions pytests/tuqquery/tuq_metering.py
Expand Up @@ -11,6 +11,7 @@ def setUp(self):
self.doc_count = self.input.param("doc_count", 10)
self.value_size = self.input.param("value_size", 256)
self.with_returning = self.input.param("with_returning", False)
self.statement = self.input.param("statement", "explain")
self.kv_wu, self.kv_ru = 1024, 4096
self.index_wu, self.index_ru = 1024, 256
self.doc = {"name": "a"*self.value_size}
Expand Down Expand Up @@ -239,3 +240,28 @@ def test_gsi_create(self):
self.assertEqual(expected_index_wu, after_index_wu - before_index_wu)
self.assertEqual(before_kv_wu, after_kv_wu) # no kv wu
self.assertEqual(expected_kv_ru, after_kv_ru - before_kv_ru)

def test_no_rw_unit(self):
insert_query = f'INSERT INTO {self.bucket} (key k, value v) SELECT uuid() as k , {self.doc} as v FROM array_range(0,{self.doc_count}) d'
# self.run_cbq_query(f'DELETE from {self.bucket}')
self.run_cbq_query(insert_query)
self.run_cbq_query(f'CREATE INDEX idx_name IF NOT EXISTS on {self.bucket}(name)')
self.wait_for_all_indexes_online()
queries = {
'explain': f'EXPLAIN SELECT name, city FROM {self.bucket} WHERE name = repeat("a", {self.value_size})',
'advise': f'ADVISE SELECT name, city FROM {self.bucket} WHERE name = repeat("a", {self.value_size})',
'catalog': 'SELECT * FROM system:keyspaces',
'query1': 'SELECT * FROM array_repeat("a", 10) as t'
}
before_index_ru, before_index_wu = self.get_metering_index(self.bucket)
before_kv_ru, before_kv_wu = self.get_metering_kv(self.bucket)
result = self.run_cbq_query(queries[self.statement])
after_index_ru, after_index_wu = self.get_metering_index(self.bucket)
after_kv_ru, after_kv_wu = self.get_metering_kv(self.bucket)

# No kv or index RWU
self.assertTrue('billingUnits' not in result)
self.assertEqual(before_index_ru, after_index_ru)
self.assertEqual(before_index_wu, after_index_wu)
self.assertEqual(before_kv_wu, after_kv_wu)
self.assertEqual(before_kv_ru, after_kv_ru)

0 comments on commit 76f29aa

Please sign in to comment.