|
3 | 3 | import * as net from 'net';
|
4 | 4 | import * as path from 'path';
|
5 | 5 | import { CancellationToken, Position, TestController, TestItem, Uri, Range } from 'vscode';
|
6 |
| -import { traceError, traceLog, traceVerbose } from '../../../logging'; |
| 6 | +import { traceError, traceInfo, traceLog, traceVerbose } from '../../../logging'; |
7 | 7 |
|
8 | 8 | import { EnableTestAdapterRewrite } from '../../../common/experiments/groups';
|
9 | 9 | import { IExperimentService } from '../../../common/types';
|
@@ -351,103 +351,39 @@ export function splitTestNameWithRegex(testName: string): [string, string] {
|
351 | 351 | }
|
352 | 352 |
|
353 | 353 | /**
|
354 |
| - * Converts an array of strings (with or without '=') into a map. |
355 |
| - * If a string contains '=', it is split into a key-value pair, with the portion |
356 |
| - * before the '=' as the key and the portion after the '=' as the value. |
357 |
| - * If no '=' is found in the string, the entire string becomes a key with a value of null. |
358 |
| - * |
359 |
| - * @param args - Readonly array of strings to be converted to a map. |
360 |
| - * @returns A map representation of the input strings. |
| 354 | + * Takes a list of arguments and adds an key-value pair to the list if the key doesn't already exist. Searches each element |
| 355 | + * in the array for the key to see if it is contained within the element. |
| 356 | + * @param args list of arguments to search |
| 357 | + * @param argToAdd argument to add if it doesn't already exist |
| 358 | + * @returns the list of arguments with the key-value pair added if it didn't already exist |
361 | 359 | */
|
362 |
| -export const argsToMap = (args: ReadonlyArray<string>): { [key: string]: Array<string> | null | undefined } => { |
363 |
| - const map: { [key: string]: Array<string> | null } = {}; |
| 360 | +export function addValueIfKeyNotExist(args: string[], key: string, value: string | null): string[] { |
364 | 361 | for (const arg of args) {
|
365 |
| - const delimiter = arg.indexOf('='); |
366 |
| - if (delimiter === -1) { |
367 |
| - // If no delimiter is found, the entire string becomes a key with a value of null. |
368 |
| - map[arg] = null; |
369 |
| - } else { |
370 |
| - const key = arg.slice(0, delimiter); |
371 |
| - const value = arg.slice(delimiter + 1); |
372 |
| - if (map[key]) { |
373 |
| - // add to the array |
374 |
| - const arr = map[key] as string[]; |
375 |
| - arr.push(value); |
376 |
| - map[key] = arr; |
377 |
| - } else { |
378 |
| - // create a new array |
379 |
| - map[key] = [value]; |
380 |
| - } |
| 362 | + if (arg.includes(key)) { |
| 363 | + traceInfo(`arg: ${key} already exists in args, not adding.`); |
| 364 | + return args; |
381 | 365 | }
|
382 | 366 | }
|
383 |
| - |
384 |
| - return map; |
385 |
| -}; |
386 |
| - |
387 |
| -/** |
388 |
| - * Converts a map into an array of strings. |
389 |
| - * Each key-value pair in the map is transformed into a string. |
390 |
| - * If the value is null, only the key is represented in the string. |
391 |
| - * If the value is defined (and not null), the string is in the format "key=value". |
392 |
| - * If a value is undefined, the key-value pair is skipped. |
393 |
| - * |
394 |
| - * @param map - The map to be converted to an array of strings. |
395 |
| - * @returns An array of strings representation of the input map. |
396 |
| - */ |
397 |
| -export const mapToArgs = (map: { [key: string]: Array<string> | null | undefined }): string[] => { |
398 |
| - const out: string[] = []; |
399 |
| - for (const key of Object.keys(map)) { |
400 |
| - const value = map[key]; |
401 |
| - if (value === undefined) { |
402 |
| - // eslint-disable-next-line no-continue |
403 |
| - continue; |
404 |
| - } |
405 |
| - if (value === null) { |
406 |
| - out.push(key); |
407 |
| - } else { |
408 |
| - const values = Array.isArray(value) ? (value as string[]) : [value]; |
409 |
| - for (const v of values) { |
410 |
| - out.push(`${key}=${v}`); |
411 |
| - } |
412 |
| - } |
| 367 | + if (value) { |
| 368 | + args.push(`${key}=${value}`); |
| 369 | + } else { |
| 370 | + args.push(`${key}`); |
413 | 371 | }
|
414 |
| - |
415 |
| - return out; |
416 |
| -}; |
| 372 | + return args; |
| 373 | +} |
417 | 374 |
|
418 | 375 | /**
|
419 |
| - * Adds an argument to the map only if it doesn't already exist. |
420 |
| - * |
421 |
| - * @param map - The map of arguments. |
422 |
| - * @param argKey - The argument key to be checked and added. |
423 |
| - * @param argValue - The value to set for the argument if it's not already in the map. |
424 |
| - * @returns The updated map. |
| 376 | + * Checks if a key exists in a list of arguments. Searches each element in the array |
| 377 | + * for the key to see if it is contained within the element. |
| 378 | + * @param args list of arguments to search |
| 379 | + * @param key string to search for |
| 380 | + * @returns true if the key exists in the list of arguments, false otherwise |
425 | 381 | */
|
426 |
| -export function addArgIfNotExist( |
427 |
| - map: { [key: string]: Array<string> | null | undefined }, |
428 |
| - argKey: string, |
429 |
| - argValue: string | null, |
430 |
| -): { [key: string]: Array<string> | null | undefined } { |
431 |
| - // Only add the argument if it doesn't exist in the map. |
432 |
| - if (map[argKey] === undefined) { |
433 |
| - // if null then set to null, otherwise set to an array with the value |
434 |
| - if (argValue === null) { |
435 |
| - map[argKey] = null; |
436 |
| - } else { |
437 |
| - map[argKey] = [argValue]; |
| 382 | +export function argKeyExists(args: string[], key: string): boolean { |
| 383 | + for (const arg of args) { |
| 384 | + if (arg.includes(key)) { |
| 385 | + return true; |
438 | 386 | }
|
439 | 387 | }
|
440 |
| - |
441 |
| - return map; |
442 |
| -} |
443 |
| - |
444 |
| -/** |
445 |
| - * Checks if an argument key exists in the map. |
446 |
| - * |
447 |
| - * @param map - The map of arguments. |
448 |
| - * @param argKey - The argument key to be checked. |
449 |
| - * @returns True if the argument key exists in the map, false otherwise. |
450 |
| - */ |
451 |
| -export function argKeyExists(map: { [key: string]: Array<string> | null | undefined }, argKey: string): boolean { |
452 |
| - return map[argKey] !== undefined; |
| 388 | + return false; |
453 | 389 | }
|
0 commit comments