mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-11-03 23:27:26 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2023 The LevelDB-Go and Pebble Authors. All rights reserved. Use
 | 
						|
// of this source code is governed by a BSD-style license that can be found in
 | 
						|
// the LICENSE file.
 | 
						|
 | 
						|
// metarunner is a utility which runs metamorphic.RunOnce or Compare. It is
 | 
						|
// equivalent to executing `internal/metamorphic.TestMeta` with `--run-dir` or
 | 
						|
// `--compare`. It is used for code coverage instrumentation.
 | 
						|
package main
 | 
						|
 | 
						|
import (
 | 
						|
	"flag"
 | 
						|
	"fmt"
 | 
						|
	"os"
 | 
						|
	"path/filepath"
 | 
						|
	"strings"
 | 
						|
 | 
						|
	"github.com/cockroachdb/pebble/internal/metamorphic/metaflags"
 | 
						|
	"github.com/cockroachdb/pebble/metamorphic"
 | 
						|
)
 | 
						|
 | 
						|
var runOnceFlags = metaflags.InitRunOnceFlags()
 | 
						|
var _ = flag.String("test.run", "", `ignored; used for compatibility with TestMeta`)
 | 
						|
 | 
						|
func main() {
 | 
						|
	flag.Parse()
 | 
						|
	onceOpts := runOnceFlags.MakeRunOnceOptions()
 | 
						|
	t := &mockT{}
 | 
						|
	switch {
 | 
						|
	case runOnceFlags.Compare != "":
 | 
						|
		runDirs := strings.Split(runOnceFlags.Compare, ",")
 | 
						|
		metamorphic.Compare(t, runOnceFlags.Dir, runOnceFlags.Seed, runDirs, onceOpts...)
 | 
						|
 | 
						|
	case runOnceFlags.RunDir != "":
 | 
						|
		// The --run-dir flag is specified either in the child process (see
 | 
						|
		// runOptions() below) or the user specified it manually in order to re-run
 | 
						|
		// a test.
 | 
						|
		metamorphic.RunOnce(t, runOnceFlags.RunDir, runOnceFlags.Seed, filepath.Join(runOnceFlags.RunDir, "history"), onceOpts...)
 | 
						|
 | 
						|
	default:
 | 
						|
		t.Errorf("--compare or --run-dir must be used")
 | 
						|
	}
 | 
						|
 | 
						|
	if t.Failed() {
 | 
						|
		// Make sure we return an error code.
 | 
						|
		t.FailNow()
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
type mockT struct {
 | 
						|
	failed bool
 | 
						|
}
 | 
						|
 | 
						|
var _ metamorphic.TestingT = (*mockT)(nil)
 | 
						|
 | 
						|
func (t *mockT) Errorf(format string, args ...interface{}) {
 | 
						|
	t.failed = true
 | 
						|
	fmt.Fprintf(os.Stderr, format+"\n", args...)
 | 
						|
}
 | 
						|
 | 
						|
func (t *mockT) FailNow() {
 | 
						|
	os.Exit(2)
 | 
						|
}
 | 
						|
 | 
						|
func (t *mockT) Failed() bool {
 | 
						|
	return t.failed
 | 
						|
}
 |