Update test framework: fix run_tests.py to support all test files, add auto-import-check for test files

This commit is contained in:
qiaoxinjiu
2026-05-09 15:11:30 +08:00
parent eb053a347f
commit eaba8328da
21739 changed files with 2236758 additions and 719 deletions

View File

@@ -0,0 +1,23 @@
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.
//
// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.
const { addHook } = require('../../index.js')
const { strictEqual } = require('assert')
addHook((name, exports) => {
if (name.match(/something\.m?js/)) {
const orig = exports.default
exports.default = function bar () {
return orig() + 15
}
}
})
;(async () => {
const { default: barMjs } = await import('../fixtures/something.mjs')
const { default: barJs } = await import('../fixtures/something.js')
strictEqual(barMjs(), 57)
strictEqual(barJs(), 57)
})()

View File

@@ -0,0 +1,23 @@
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.
//
// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.
import { addHook } from '../../index.js'
import { strictEqual } from 'assert'
addHook((name, exports) => {
if (name.match(/something\.m?js/)) {
const orig = exports.default
exports.default = function bar () {
return orig() + 15
}
}
})
;(async () => {
const { default: barMjs } = await import('../fixtures/something.mjs')
const { default: barJs } = await import('../fixtures/something.js')
strictEqual(barMjs(), 57)
strictEqual(barJs(), 57)
})()

View File

@@ -0,0 +1,27 @@
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.
//
// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.
const { addHook } = require('../../index.js')
const { strictEqual } = require('assert')
addHook((name, exports) => {
if (name.match(/something\.m?js/)) {
exports.foo += 15
}
if (name === 'node:os') {
Object.defineProperty(exports, 'freemem', {
value: () => 47
})
}
})
;(async () => {
const { foo: fooMjs } = await import('../fixtures/something.mjs')
const { foo: fooJs } = await import('../fixtures/something.js')
const { freemem } = await import('os')
strictEqual(fooMjs, 57)
strictEqual(fooJs, 57)
strictEqual(freemem(), 47)
})()

View File

@@ -0,0 +1,25 @@
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.
//
// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.
import { addHook, removeHook } from '../../index.js'
import { strictEqual } from 'assert'
const hook = (name, exports) => {
if (name.match(/something\.m?js/)) {
exports.foo += 15
}
}
addHook(hook)
;(async () => {
const { foo: fooMjs } = await import('../fixtures/something.mjs')
removeHook(hook)
const { foo: fooJs } = await import('../fixtures/something.js')
strictEqual(fooMjs, 57)
strictEqual(fooJs, 42)
})()

View File

@@ -0,0 +1,11 @@
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.
//
// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.
import { addHook } from '../../index.js'
addHook(() => {})
;(async () => {
await import("../fixtures/something.mjs#*/'/*';eval('process.exit\x281\x29\x0A')")
})()

View File

@@ -0,0 +1,20 @@
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.
//
// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.
import { addHook } from '../../index.js'
import barMjs from '../fixtures/something.mjs'
import barJs from '../fixtures/something.js'
import { strictEqual } from 'assert'
addHook((name, exports) => {
if (name.match(/something\.m?js/)) {
const orig = exports.default
exports.default = function bar () {
return orig() + 15
}
}
})
strictEqual(barMjs(), 57)
strictEqual(barJs(), 57)

View File

@@ -0,0 +1,15 @@
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.
//
// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.
import { addHook } from '../../index.js'
import { foo as fooMjs } from '../fixtures/something.mjs'
import { foo as fooJs } from '../fixtures/something.js'
import { strictEqual, fail } from 'assert'
addHook(() => {
fail('should not have been called at all')
})
strictEqual(fooMjs, 42)
strictEqual(fooJs, 42)

View File

@@ -0,0 +1,24 @@
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.
//
// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.
import { addHook } from '../../index.js'
import { foo as fooMjs } from '../fixtures/something.mjs'
import { foo as fooJs } from '../fixtures/something.js'
import { freemem } from 'os'
import { strictEqual } from 'assert'
addHook((name, exports) => {
if (name.match(/something\.m?js/)) {
exports.foo += 15
}
if (name === 'node:os') {
Object.defineProperty(exports, 'freemem', {
value: () => 47
})
}
})
strictEqual(fooMjs, 57)
strictEqual(fooJs, 57)
strictEqual(freemem(), 47)