Home / Function/ TestEngineHandleContextManyReEntries() — gin Function Reference

TestEngineHandleContextManyReEntries() — gin Function Reference

Architecture documentation for the TestEngineHandleContextManyReEntries() function in gin_test.go from the gin codebase.

Entity Profile

Dependency Diagram

graph TD
  29531c5d_32cb_5425_8825_f219cd9829eb["TestEngineHandleContextManyReEntries()"]
  5d6e7276_feeb_b8e2_30e8_0ae0827740a5["gin_test.go"]
  29531c5d_32cb_5425_8825_f219cd9829eb -->|defined in| 5d6e7276_feeb_b8e2_30e8_0ae0827740a5
  style 29531c5d_32cb_5425_8825_f219cd9829eb fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

gin_test.go lines 671–706

func TestEngineHandleContextManyReEntries(t *testing.T) {
	expectValue := 10000

	var handlerCounter, middlewareCounter int64

	r := New()
	r.Use(func(c *Context) {
		atomic.AddInt64(&middlewareCounter, 1)
	})
	r.GET("/:count", func(c *Context) {
		countStr := c.Param("count")
		count, err := strconv.Atoi(countStr)
		require.NoError(t, err)

		n, err := c.Writer.Write([]byte("."))
		require.NoError(t, err)
		assert.Equal(t, 1, n)

		switch {
		case count > 0:
			c.Request.URL.Path = "/" + strconv.Itoa(count-1)
			r.HandleContext(c)
		}
	}, func(c *Context) {
		atomic.AddInt64(&handlerCounter, 1)
	})

	assert.NotPanics(t, func() {
		w := PerformRequest(r, http.MethodGet, "/"+strconv.Itoa(expectValue-1)) // include 0 value
		assert.Equal(t, 200, w.Code)
		assert.Equal(t, expectValue, w.Body.Len())
	})

	assert.Equal(t, int64(expectValue), handlerCounter)
	assert.Equal(t, int64(expectValue), middlewareCounter)
}

Domain

Subdomains

Defined In

Frequently Asked Questions

What does TestEngineHandleContextManyReEntries() do?
TestEngineHandleContextManyReEntries() is a function in the gin codebase, defined in gin_test.go.
Where is TestEngineHandleContextManyReEntries() defined?
TestEngineHandleContextManyReEntries() is defined in gin_test.go at line 671.

Analyze Your Own Codebase

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

Try Supermodel Free