func MergeGenericCoverageFiles()

in dev/coverage/coverage.go [109:143]


func MergeGenericCoverageFiles(paths []string, output string) error {
	f, err := os.Create(output)
	if err != nil {
		return fmt.Errorf("cannot open file %s to write merged coverage: %w", output, err)
	}
	defer f.Close()

	var coverage *GenericCoverage
	for _, path := range paths {
		c, err := ReadGenericCoverage(path)
		if err != nil {
			return fmt.Errorf("failed to read coverage from %s: %w", path, err)
		}
		if coverage == nil {
			coverage = c
			continue
		}
		err = coverage.Merge(c)
		if err != nil {
			return fmt.Errorf("failed to merge coverage from %s: %w", path, err)
		}
	}

	d, err := coverage.Bytes()
	if err != nil {
		return fmt.Errorf("failed to encode merged coverage: %w", err)
	}

	_, err = f.Write(d)
	if err != nil {
		return fmt.Errorf("cannot write merged coverage to %s: %w", output, err)
	}

	return nil
}