From 95f1277feda6dba76a3c3ece0f3b09fd29bb8657 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Thu, 29 Jun 2023 15:16:32 -0700 Subject: [PATCH] Squash queries down to just 2 (#210) --- multidim-interop/src/generator.ts | 52 +++++-------------------------- 1 file changed, 8 insertions(+), 44 deletions(-) diff --git a/multidim-interop/src/generator.ts b/multidim-interop/src/generator.ts index da19dae..e4d4df8 100644 --- a/multidim-interop/src/generator.ts +++ b/multidim-interop/src/generator.ts @@ -54,6 +54,7 @@ export async function buildTestSpecs(versions: Array, nameFilter: strin // Generate the testing combinations by SELECT'ing from both transports // and muxers tables the distinct combinations where the transport and the muxer // of the different libp2p implementations match. + const standaloneTransports = ["quic", "quic-v1", "webtransport", "webrtc", "webrtc-direct"] const queryResults = await db.all(`SELECT DISTINCT a.id as id1, b.id as id2, a.transport, ma.muxer, sa.sec FROM transports a, transports b, muxers ma, muxers mb, secureChannels sa, secureChannels sb @@ -65,47 +66,15 @@ export async function buildTestSpecs(versions: Array, nameFilter: strin AND a.transport == b.transport AND sa.sec == sb.sec AND ma.muxer == mb.muxer - -- quic only uses its own muxer/securechannel - AND a.transport != "webtransport" - AND a.transport != "webrtc-direct" - AND a.transport != "webrtc" - AND a.transport != "quic" - AND a.transport != "quic-v1";`); - const quicQueryResults = + -- These transports don't define muxers/securechannels + AND a.transport NOT IN ($standaloneTransports);`, { $standaloneTransports: standaloneTransports }); + const standaloneTransportsQueryResults = await db.all(`SELECT DISTINCT a.id as id1, b.id as id2, a.transport FROM transports a, transports b WHERE a.transport == b.transport AND NOT b.onlyDial - -- Only quic transports - AND a.transport == "quic";`); - const quicV1QueryResults = - await db.all(`SELECT DISTINCT a.id as id1, b.id as id2, a.transport - FROM transports a, transports b - WHERE a.transport == b.transport - AND NOT b.onlyDial - -- Only quic transports - AND a.transport == "quic-v1";`); - const webtransportQueryResults = - await db.all(`SELECT DISTINCT a.id as id1, b.id as id2, a.transport - FROM transports a, transports b - WHERE a.transport == b.transport - AND NOT b.onlyDial - -- Only webtransport transports - AND a.transport == "webtransport";`); - const webrtcQueryResults = - await db.all(`SELECT DISTINCT a.id as id1, b.id as id2, a.transport - FROM transports a, transports b - WHERE a.transport == b.transport - AND NOT b.onlyDial - -- Only webrtc transports - AND a.transport == "webrtc";`); - const webrtcDirectQueryResults = - await db.all(`SELECT DISTINCT a.id as id1, b.id as id2, a.transport - FROM transports a, transports b - WHERE a.transport == b.transport - AND NOT b.onlyDial - -- Only webrtc-direct transports - AND a.transport == "webrtc-direct";`); + -- These transports don't define muxers/securechannels + AND a.transport IN ($standaloneTransports);`, { $standaloneTransports: standaloneTransports }); await db.close(); const testSpecs = queryResults.map((test): ComposeSpecification => ( @@ -119,19 +88,14 @@ export async function buildTestSpecs(versions: Array, nameFilter: strin extraEnv: buildExtraEnv(timeoutOverride, test.id1, test.id2) }, nameFilter) )).concat( - quicQueryResults - .concat(quicV1QueryResults) - .concat(webtransportQueryResults) - .concat(webrtcDirectQueryResults) - .concat(webrtcQueryResults) + standaloneTransportsQueryResults .map((test): ComposeSpecification => buildSpec(containerImages, { name: `${test.id1} x ${test.id2} (${test.transport})`, dialerID: test.id1, listenerID: test.id2, transport: test.transport, extraEnv: buildExtraEnv(timeoutOverride, test.id1, test.id2) - }, nameFilter))) - .filter((spec): spec is ComposeSpecification => spec !== null) + }, nameFilter))).filter((spec): spec is ComposeSpecification => spec !== null) return testSpecs }