Home / Function/ captureOutput() — gin Function Reference

captureOutput() — gin Function Reference

Architecture documentation for the captureOutput() function in debug_test.go from the gin codebase.

Entity Profile

Dependency Diagram

graph TD
  8ee5a2af_634d_2b9b_d50c_11685d28130a["captureOutput()"]
  447c0b4e_be9e_63f2_c7f3_3273cf38e671["TestDebugPrint()"]
  447c0b4e_be9e_63f2_c7f3_3273cf38e671 -->|calls| 8ee5a2af_634d_2b9b_d50c_11685d28130a
  9eed9791_f1ed_b6e8_2c90_03ae20a60554["TestDebugPrintFunc()"]
  9eed9791_f1ed_b6e8_2c90_03ae20a60554 -->|calls| 8ee5a2af_634d_2b9b_d50c_11685d28130a
  180af47c_6002_47be_2d4e_da9fdb0e2e02["TestDebugPrintError()"]
  180af47c_6002_47be_2d4e_da9fdb0e2e02 -->|calls| 8ee5a2af_634d_2b9b_d50c_11685d28130a
  37e0965d_3863_9dce_f74b_67b2feacccad["TestDebugPrintRoutes()"]
  37e0965d_3863_9dce_f74b_67b2feacccad -->|calls| 8ee5a2af_634d_2b9b_d50c_11685d28130a
  7007f354_750f_ae3a_aacd_eba9cb79758e["TestDebugPrintRouteFunc()"]
  7007f354_750f_ae3a_aacd_eba9cb79758e -->|calls| 8ee5a2af_634d_2b9b_d50c_11685d28130a
  f7721d7a_fe43_f692_01f6_5d51e24a0d96["TestDebugPrintLoadTemplate()"]
  f7721d7a_fe43_f692_01f6_5d51e24a0d96 -->|calls| 8ee5a2af_634d_2b9b_d50c_11685d28130a
  5727a912_5bd0_ef3f_cef7_94285407288d["TestDebugPrintWARNINGSetHTMLTemplate()"]
  5727a912_5bd0_ef3f_cef7_94285407288d -->|calls| 8ee5a2af_634d_2b9b_d50c_11685d28130a
  5c873b57_e3a6_2e5b_8a77_7c53d256ea2f["TestDebugPrintWARNINGDefault()"]
  5c873b57_e3a6_2e5b_8a77_7c53d256ea2f -->|calls| 8ee5a2af_634d_2b9b_d50c_11685d28130a
  6ba87d34_d177_81c0_82cc_21c4e9e8fddb["TestDebugPrintWARNINGDefaultWithUnsupportedVersion()"]
  6ba87d34_d177_81c0_82cc_21c4e9e8fddb -->|calls| 8ee5a2af_634d_2b9b_d50c_11685d28130a
  7069dfa9_de07_c8bf_8ae1_4547d35d0706["TestDebugPrintWARNINGNew()"]
  7069dfa9_de07_c8bf_8ae1_4547d35d0706 -->|calls| 8ee5a2af_634d_2b9b_d50c_11685d28130a
  style 8ee5a2af_634d_2b9b_d50c_11685d28130a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

debug_test.go lines 136–165

func captureOutput(t *testing.T, f func()) string {
	reader, writer, err := os.Pipe()
	if err != nil {
		panic(err)
	}
	defaultWriter := DefaultWriter
	defaultErrorWriter := DefaultErrorWriter
	defer func() {
		DefaultWriter = defaultWriter
		DefaultErrorWriter = defaultErrorWriter
		log.SetOutput(os.Stderr)
	}()
	DefaultWriter = writer
	DefaultErrorWriter = writer
	log.SetOutput(writer)
	out := make(chan string)
	wg := new(sync.WaitGroup)
	wg.Add(1)
	go func() {
		var buf strings.Builder
		wg.Done()
		_, err := io.Copy(&buf, reader)
		assert.NoError(t, err)
		out <- buf.String()
	}()
	wg.Wait()
	f()
	writer.Close()
	return <-out
}

Domain

Subdomains

Frequently Asked Questions

What does captureOutput() do?
captureOutput() is a function in the gin codebase.
What calls captureOutput()?
captureOutput() is called by 10 function(s): TestDebugPrint, TestDebugPrintError, TestDebugPrintFunc, TestDebugPrintLoadTemplate, TestDebugPrintRouteFunc, TestDebugPrintRoutes, TestDebugPrintWARNINGDefault, TestDebugPrintWARNINGDefaultWithUnsupportedVersion, and 2 more.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free