MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / run_sqlancer

Function run_sqlancer

misc/python/materialize/sqlancer.py:179–272  ·  view source on GitHub ↗
(
    c: Composition,
    parser: WorkflowArgumentParser,
    *,
    service_name: str,
    default_oracle: str,
    build_run_args: Callable[[argparse.Namespace, int], list[str]],
    docker_logs_path: str,
    log_prefix: str,
)

Source from the content-addressed store, hash-verified

177
178
179def run_sqlancer(
180 c: Composition,
181 parser: WorkflowArgumentParser,
182 *,
183 service_name: str,
184 default_oracle: str,
185 build_run_args: Callable[[argparse.Namespace, int], list[str]],
186 docker_logs_path: str,
187 log_prefix: str,
188) -> None:
189 parser.add_argument("--runtime", default=600, type=int)
190 parser.add_argument("--num-tries", default=100000, type=int)
191 parser.add_argument("--num-threads", default=16, type=int)
192 parser.add_argument("--seed", default=None, type=int)
193 parser.add_argument("--qpg", default=True, action=argparse.BooleanOptionalAction)
194 parser.add_argument("--oracle", default=default_oracle, type=str)
195 args = parser.parse_args()
196
197 c.up("materialized")
198
199 c.sql(
200 "ALTER SYSTEM SET max_databases TO 1000",
201 user="mz_system",
202 port=6877,
203 )
204 c.sql(
205 "ALTER SYSTEM SET max_tables TO 1000",
206 user="mz_system",
207 port=6877,
208 )
209 c.sql(
210 "ALTER SYSTEM SET max_materialized_views TO 1000",
211 user="mz_system",
212 port=6877,
213 )
214
215 seed = args.seed or random.randint(0, 2**31)
216
217 run_args = build_run_args(args, seed)
218
219 print("--- Run in progress")
220 result = c.run(
221 service_name,
222 *run_args,
223 check=False,
224 detach=True,
225 capture=True,
226 )
227 container_id = result.stdout.strip()
228
229 # Print logs in a background thread so that we get immediate output in CI,
230 # and also when running SQLancer locally
231 thread = Thread(target=_print_logs, args=(container_id,))
232 thread.start()
233 # At the same time capture the logs to analyze for finding new issues
234 stdout = spawn.capture(
235 ["docker", "logs", "-f", container_id], stderr=subprocess.STDOUT
236 )

Callers 2

workflow_defaultFunction · 0.90
workflow_defaultFunction · 0.90

Calls 7

check_query_errorsFunction · 0.85
captureMethod · 0.80
existsMethod · 0.80
upMethod · 0.45
sqlMethod · 0.45
runMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected