Skip to content

Regression: message: 'src and dest cannot be the same' #9880

@melroy89

Description

@melroy89

Describe the bug

After the latest vitest version, PR #9626 is creating regression issue.

Causing the error:

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Unhandled Error ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
SystemError: Invalid src or dest: cp returned EINVAL (src and dest cannot be the same) melroy/my-project/apps/backend/test-report/coverage
 ❯ checkPaths node:internal/fs/cp/cp:80:13
 ❯ cpFn node:internal/fs/cp/cp:66:17
 ❯ HTMLReporter.onFinishedReportCoverage ../../node_modules/.pnpm/@vitest+ui@4.1.0_vitest@4.1.0/node_modules/@vitest/ui/dist/reporter.js:175:4
 ❯ Vitest.reportCoverage ../../node_modules/.pnpm/vitest@4.1.0_@types+node@24.12.0_@vitest+ui@4.1.0_jsdom@27.4.0_vite@7.3.1_@types+node@2_08ea2c2d9096821c90d54ab0e58e7b62/node_modules/vitest/dist/chunks/cli-api.DuT9iuvY.js:13755:146
 ❯ ../../node_modules/.pnpm/vitest@4.1.0_@types+node@24.12.0_@vitest+ui@4.1.0_jsdom@27.4.0_vite@7.3.1_@types+node@2_08ea2c2d9096821c90d54ab0e58e7b62/node_modules/vitest/dist/chunks/cli-api.DuT9iuvY.js:13459:6
 ❯ ../../node_modules/.pnpm/vitest@4.1.0_@types+node@24.12.0_@vitest+ui@4.1.0_jsdom@27.4.0_vite@7.3.1_@types+node@2_08ea2c2d9096821c90d54ab0e58e7b62/node_modules/vitest/dist/chunks/cli-api.DuT9iuvY.js:13468:11
 ❯ ../../node_modules/.pnpm/vitest@4.1.0_@types+node@24.12.0_@vitest+ui@4.1.0_jsdom@27.4.0_vite@7.3.1_@types+node@2_08ea2c2d9096821c90d54ab0e58e7b62/node_modules/vitest/dist/chunks/cli-api.DuT9iuvY.js:13338:19
 ❯ startVitest ../../node_modules/.pnpm/vitest@4.1.0_@types+node@24.12.0_@vitest+ui@4.1.0_jsdom@27.4.0_vite@7.3.1_@types+node@2_08ea2c2d9096821c90d54ab0e58e7b62/node_modules/vitest/dist/chunks/cli-api.DuT9iuvY.js:14380:8
 ❯ start ../../node_modules/.pnpm/vitest@4.1.0_@types+node@24.12.0_@vitest+ui@4.1.0_jsdom@27.4.0_vite@7.3.1_@types+node@2_08ea2c2d9096821c90d54ab0e58e7b62/node_modules/vitest/dist/chunks/cac.CWGDZnXT.js:2316:15
 ❯ CAC.run ../../node_modules/.pnpm/vitest@4.1.0_@types+node@24.12.0_@vitest+ui@4.1.0_jsdom@27.4.0_vite@7.3.1_@types+node@2_08ea2c2d9096821c90d54ab0e58e7b62/node_modules/vitest/dist/chunks/cac.CWGDZnXT.js:2294:2

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { code: 'ERR_FS_CP_EINVAL', info: { message: 'src and dest cannot be the same', path: 'melroy/my-project/apps/backend/test-report/coverage', syscall: 'cp', errno: 22, code: 'EINVAL' }, errno: 22, syscall: 'cp', path: 'melroy/my-project/apps/backend/test-report/coverage' }

Reproduction

See link: https://stackblitz.com/edit/vitest-dev-vitest-evwaapxo

import { defineConfig } from 'vitest/config'

export default defineConfig({
  test: {
    include: ['tests/**/*.test.ts'],
    exclude: ['**node_modules/**', '**.git/**', 'dist', 'build'],
    globals: true,
    reporters: ['default', 'junit', 'html'],
    coverage: {
      enabled: true,
      provider: 'v8',
      reporter: ['text', 'text-summary', 'html'],
      reportsDirectory: './same-directory/coverage',
      include: ['src/**/*.ts']
    },
    outputFile: {
      junit: './same-directory/junit.xml',
      html: './same-directory/index.html'
    },
    environment: 'node',
    bail: 2,
    clearMocks: true
  }
})

System Info

System:
    OS: Linux 6.17 Linux Mint 22.3 (Zena)
    CPU: (48) x64 AMD Ryzen Threadripper 7960X 24-Cores (NICE, huh?)
    Memory: 107.33 GB / 125.30 GB (NICE, huh?)
    Container: Yes
    Shell: 5.9 - /usr/bin/zsh
  Binaries:
    Node: 24.13.1 - /home/melroy/.nvm/versions/node/v24.13.1/bin/node
    npm: 11.8.0 - /home/melroy/.nvm/versions/node/v24.13.1/bin/npm
    pnpm: 10.32.1 - /home/melroy/.local/share/pnpm/pnpm
    bun: 1.2.2 - /home/melroy/.bun/bin/bun
    Deno: 2.5.4 - /home/melroy/.deno/bin/deno
  Browsers:
    Chrome: 146.0.7680.80
    Chromium: 146.0.7680.71
    Firefox: 148.0.2
    Firefox Developer Edition: 148.0.2
  npmPackages:
    @vitest/coverage-v8: ^4.1.0 => 4.1.0 
    @vitest/ui: ^4.1.0 => 4.1.0 
    vitest: ^4.1.0 => 4.1.0

Used Package Manager

npm

Validations

Metadata

Metadata

Assignees

Labels

p3-minor-bugAn edge case that only affects very specific usage (priority)pending triage

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions