/interop

Interoperability tests for libp2p Implementations

Primary LanguageTypeScriptOtherNOASSERTION

@libp2p/interop

libp2p.io Discuss codecov CI

Interoperability Tests for libp2p

Table of contents

Install

$ npm i @libp2p/interop

This repository will be used for interop tests.

Usage

Running the tests

Create a js file that configures the different types of daemon:

import { interopTests } from '@libp2p/interop'
import type { Daemon, DaemonFactory } from '@libp2p/interop'

async function createGoPeer (options: SpawnOptions): Promise<Daemon> {
  // your implementation here
}

async function createJsPeer (options: SpawnOptions): Promise<Daemon> {
  // your implementation here
}

async function main () {
  const factory: DaemonFactory = {
    async spawn (options: SpawnOptions) {
      if (options.type === 'go') {
        return createGoPeer(options)
      }

      return createJsPeer(options)
    }
  }

  interopTests(factory)
}

main().catch(err => {
  console.error(err)
  process.exit(1)
})

For an example, see the js-libp2p interop test runner.

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.