diff --git a/.githooks/pre-commit b/.githooks/pre-commit deleted file mode 100755 index 495b5de..0000000 --- a/.githooks/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash - -goimports -l -w . # includes go fmt -golangci-lint run # includes golint, go vet diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index b02082c..0000000 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,91 +0,0 @@ -name: Bug Report -description: File a bug report -title: "[Bug]: " -labels: ["bug"] -body: - - type: markdown - attributes: - value: | - Thanks for taking the time to fill out this bug report! - - type: textarea - id: description - attributes: - label: Describe the bug - description: A clear and concise description of what the bug is. - validations: - required: true - - type: textarea - id: reproduce - attributes: - label: To Reproduce - description: Steps to reproduce the behavior - placeholder: | - 1. Use function/method '...' - 2. With parameters '...' - 3. See error - validations: - required: true - - type: textarea - id: expected - attributes: - label: Expected behavior - description: A clear and concise description of what you expected to happen. - validations: - required: true - - type: textarea - id: code - attributes: - label: Code Example - description: If applicable, add a minimal code example to help explain your problem. - render: go - placeholder: | - // Your code here - validations: - required: false - - type: input - id: go-version - attributes: - label: Go Version - description: Which Go version are you using? - placeholder: e.g., 1.21.0 - validations: - required: true - - type: input - id: package-version - attributes: - label: Package version - placeholder: e.g., v1.0.0 - validations: - required: true - - type: input - id: go-redis-version - attributes: - label: go-redis Version - description: Which version of go-redis are you using? - placeholder: e.g., v9.0.5 - validations: - required: true - - type: input - id: redis-server-version - attributes: - label: Redis Server Version - description: Which Redis server version are you using? - placeholder: e.g., 7.2.1 - validations: - required: true - - type: textarea - id: environment - attributes: - label: Additional environment details - description: Any other relevant environment information (OS, configuration, etc.) - placeholder: More details about your environment - validations: - required: false - - type: textarea - id: context - attributes: - label: Additional context - description: Add any other context about the problem here. - validations: - required: false - diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 957b420..0000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,9 +0,0 @@ -blank_issues_enabled: false -contact_links: - - name: Documentation - url: https://github.com/redis/go-redis-entraid/blob/main/README.md - about: Check if your issue is already addressed in the documentation. - - name: go-redis repository - url: https://github.com/redis/go-redis - about: For issues related to the Redis client itself, please file an issue in the go-redis repository. - diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml deleted file mode 100644 index a015fdb..0000000 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: Feature Request -description: Suggest an idea for this project -title: "[Feature]: " -labels: ["enhancement"] -body: - - type: markdown - attributes: - value: | - Thanks for taking the time to suggest a new feature! - - type: textarea - id: problem - attributes: - label: Is your feature request related to a problem? - description: A clear and concise description of what the problem is. - placeholder: I'm always frustrated when [...] - validations: - required: true - - type: textarea - id: solution - attributes: - label: Describe the solution you'd like - description: A clear and concise description of what you want to happen. - validations: - required: true - - type: textarea - id: alternatives - attributes: - label: Describe alternatives you've considered - description: A clear and concise description of any alternative solutions or features you've considered. - validations: - required: false - - type: textarea - id: context - attributes: - label: Additional context - description: Add any other context or code examples about the feature request here. - placeholder: | - ```go - // Optional code example - ``` - validations: - required: false - diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml deleted file mode 100644 index 8a25760..0000000 --- a/.github/release-drafter.yml +++ /dev/null @@ -1,46 +0,0 @@ -name-template: 'v$RESOLVED_VERSION' -tag-template: 'v$RESOLVED_VERSION' -categories: - - title: '🚀 Features' - labels: - - 'feature' - - 'enhancement' - - title: '🐛 Bug Fixes' - labels: - - 'fix' - - 'bugfix' - - 'bug' - - title: '🧰 Maintenance' - labels: - - 'chore' - - 'documentation' - - 'refactor' - - 'test' -change-template: '- $TITLE @$AUTHOR (#$NUMBER)' -version-resolver: - major: - labels: - - 'major' - - 'breaking' - minor: - labels: - - 'minor' - - 'feature' - - 'enhancement' - patch: - labels: - - 'patch' - - 'bug' - - 'bugfix' - - 'fix' - - 'chore' - - 'documentation' - default: patch -template: | - ## Changes - - $CHANGES - - ## Contributors - - $CONTRIBUTORS diff --git a/.github/workflows/bench.yml b/.github/workflows/bench.yml deleted file mode 100644 index 692dc78..0000000 --- a/.github/workflows/bench.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Benchmark Performance -on: - pull_request: - branches: - - master - - main - push: - branches: - - master - - main -permissions: - # deployments permission to deploy GitHub pages website - deployments: write - # contents permission to update benchmark contents in gh-pages branch - contents: write - -jobs: - benchmark: - name: Performance regression check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v4 - with: - go-version: "stable" - - name: Install dependencies - run: go mod tidy - - name: Run benchmark - run: go test ./... -bench=. -benchmem -count 2 -timeout 1m | tee benchmarks.txt - # Download previous benchmark result from cache (if exists) - - name: Download previous benchmark data - uses: actions/cache@v4 - with: - path: ./cache - key: ${{ runner.os }}-benchmark - # Run `github-action-benchmark` action - - name: Store benchmark result - uses: benchmark-action/github-action-benchmark@v1 - with: - name: Go Benchmark - tool: 'go' - output-file-path: benchmarks.txt - github-token: ${{ secrets.GITHUB_TOKEN }} - auto-push: true - # Show alert with commit comment on detecting possible performance regression - alert-threshold: '200%' - comment-on-alert: true - fail-on-alert: true - alert-comment-cc-users: '@ndyakov' diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 4850576..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: go test & coverage -on: - push: - branches: - - main - - master - pull_request: - branches: - - main - - master -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: stable - - name: Install dependencies - run: go mod tidy - - name: Run tests with coverage - run: go test $(go list ./... | grep -v /examples/) -coverprofile=./cover.out -covermode=atomic -race -count 2 -timeout 5m - - name: Upload coverage - uses: actions/upload-artifact@v4 - with: - name: code-coverage - path: cover.out # Make sure to use the same file name you chose for the "-coverprofile" in the "Test" step - - name: Check coverage - uses: vladopajic/go-test-coverage@v2 - with: - config: ./.testcoverage.yml - code_coverage: - name: "Code coverage report" - if: github.event_name == 'pull_request' # Do not run when workflow is triggered by push to main branch - runs-on: ubuntu-latest - needs: test # Depends on the artifact uploaded by the "unit_tests" job - permissions: - contents: read - actions: read # to download code coverage results from "test" job - pull-requests: write # write permission needed to comment on PR - steps: - - uses: fgrosse/go-coverage-report@v1.2.0 # Consider using a Git revision for maximum security - with: - coverage-artifact-name: "code-coverage" # can be omitted if you used this default value - coverage-file-name: "cover.out" # can be omitted if you used this default value diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml deleted file mode 100644 index 06d514b..0000000 --- a/.github/workflows/codeql.yml +++ /dev/null @@ -1,100 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL Advanced" - -on: - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] - schedule: - - cron: '42 15 * * 2' - -jobs: - analyze: - name: Analyze (${{ matrix.language }}) - # Runner size impacts CodeQL analysis time. To learn more, please see: - # - https://gh.io/recommended-hardware-resources-for-running-codeql - # - https://gh.io/supported-runners-and-hardware-resources - # - https://gh.io/using-larger-runners (GitHub.com only) - # Consider using larger runners or machines with greater resources for possible analysis time improvements. - runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} - permissions: - # required for all workflows - security-events: write - - # required to fetch internal or private CodeQL packs - packages: read - - # only required for workflows in private repositories - actions: read - contents: read - - strategy: - fail-fast: false - matrix: - include: - - language: actions - build-mode: none - - language: go - build-mode: autobuild - # CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' - # Use `c-cpp` to analyze code written in C, C++ or both - # Use 'java-kotlin' to analyze code written in Java, Kotlin or both - # Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both - # To learn more about changing the languages that are analyzed or customizing the build mode for your analysis, - # see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning. - # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how - # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - # Add any setup steps before running the `github/codeql-action/init` action. - # This includes steps like installing compilers or runtimes (`actions/setup-node` - # or others). This is typically only required for manual builds. - # - name: Setup runtime (example) - # uses: actions/setup-example@v1 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v3 - with: - languages: ${{ matrix.language }} - build-mode: ${{ matrix.build-mode }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - - # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs - # queries: security-extended,security-and-quality - - # If the analyze step fails for one of the languages you are analyzing with - # "We were unable to automatically build your code", modify the matrix above - # to set the build mode to "manual" for that language. Then modify this step - # to build your code. - # â„šī¸ Command-line programs to run using the OS shell. - # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun - - if: matrix.build-mode == 'manual' - shell: bash - run: | - echo 'If you are using a "manual" build mode for one or more of the' \ - 'languages you are analyzing, replace this with the commands to build' \ - 'your code, for example:' - echo ' make bootstrap' - echo ' make release' - exit 1 - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 - with: - category: "/language:${{matrix.language}}" diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml deleted file mode 100644 index 81c6b3d..0000000 --- a/.github/workflows/golangci-lint.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: golangci-lint -on: - push: - branches: - - main - - master - pull_request: - branches: - - main - - master - -permissions: - contents: read - pull-requests: read - -jobs: - golangci: - name: lint - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: stable - - name: golangci-lint - uses: golangci/golangci-lint-action@v7 - with: - version: v2.0 diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml deleted file mode 100644 index 9ac0fd0..0000000 --- a/.github/workflows/release-drafter.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Release Drafter - -on: - push: - branches: - - main - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -permissions: - contents: read - -jobs: - update_release_draft: - permissions: - # write permission is required to create a github release - contents: write - # write permission is required for autolabeler - pull-requests: write - - runs-on: ubuntu-latest - steps: - # Drafts your next Release notes as Pull Requests are merged into "main" - - uses: release-drafter/release-drafter@v5 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore deleted file mode 100644 index ce0bc89..0000000 --- a/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -.idea/ -.DS_Store -*.tar.gz -*.dic -coverage.txt -cover.out -**/coverage.txt -**/cover.out -.vscode -tmp/ diff --git a/.golangci.yml b/.golangci.yml deleted file mode 100644 index cd7f519..0000000 --- a/.golangci.yml +++ /dev/null @@ -1,7 +0,0 @@ -version: "2" -run: - tests: false -linters: - disable: - - depguard - diff --git a/.testcoverage.yml b/.testcoverage.yml deleted file mode 100644 index 81da8d9..0000000 --- a/.testcoverage.yml +++ /dev/null @@ -1,52 +0,0 @@ -# (mandatory) -# Path to coverage profile file (output of `go test -coverprofile` command). -# -# For cases where there are many coverage profiles, such as when running -# unit tests and integration tests separately, you can combine all those -# profiles into one. In this case, the profile should have a comma-separated list -# of profile files, e.g., 'cover_unit.out,cover_integration.out'. -profile: cover.out - -# Holds coverage thresholds percentages, values should be in range [0-100]. -threshold: - # (optional; default 0) - # Minimum coverage percentage required for individual files. - file: 85 - - # (optional; default 0) - # Minimum coverage percentage required for each package. - package: 85 - - # (optional; default 0) - # Minimum overall project coverage percentage required. - total: 90 - -# Holds regexp rules which will override thresholds for matched files or packages -# using their paths. -# -# First rule from this list that matches file or package is going to apply -# new threshold to it. If project has multiple rules that match same path, -# override rules should be listed in order from specific to more general rules. -override: - - path: ^internal$ - threshold: 95 - - path: ^token$ - threshold: 100 - -# Holds regexp rules which will exclude matched files or packages -# from coverage statistics. -exclude: - # Exclude files or packages matching their paths - paths: - - ^examples - - \.pb\.go$ # excludes all protobuf generated files - - ^pkg/bar # exclude package `pkg/bar` - -# File name of go-test-coverage breakdown file, which can be used to -# analyze coverage difference. -breakdown-file-name: '' - -diff: - # File name of go-test-coverage breakdown file which will be used to - # report coverage difference. - base-breakdown-file-name: '' diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index a007953..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,65 +0,0 @@ -# Changelog - -All notable changes to go-redis-entraid will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [1.0.6] - 2025-09-12 - -### Changed -- chore: update changelog @ndyakov (#13) - -## [1.0.5] - 2025-09-11 - -### Fixed -- fix: don't hold lock when calling listeners @ndyakov (#12) - -## [1.0.4] - 2025-08-06 - -## Changed -- refactor(manager): small refactors around the manager and token logic @ndyakov (#10) - -## [1.0.3] - 2025-05-30 - -### Changed -- refactor(provider): Mark ClientID as deprecated, use correct one in examples. (#8) - -## [1.0.2] - 2025-05-29 - -### Changed -- chore(documentation): add release notes, add badges in readme @ndyakov (#7) -- fix(manager): optimize durationToRenewal @ndyakov (#6) - -## [1.0.1] - 2025-05-27 - -### Changed -- chore(deps): update dependencies @ndyakov (#5) -- refactor(github): move templates, add changelog @ndyakov (#4) - -## [1.0.0] - 2025-05-27 - -### Added -- Initial General Availability release -- Multiple authentication methods: - - Client Secret authentication - - Client Certificate authentication - - Managed Identity (System and User-assigned) - - Default Azure Identity Provider for local development -- Automatic token acquisition and renewal -- Configurable token refresh policies -- Thread-safe token management -- Comprehensive error handling and recovery strategies -- Configuration support via environment variables, code, or configuration files - -### Compatibility -- Go: 1.16+ -- go-redis: v9.10.0+ - -[1.0.0]: https://github.com/redis/go-redis-entraid/releases/tag/v1.0.0 -[1.0.1]: https://github.com/redis/go-redis-entraid/releases/tag/v1.0.1 -[1.0.2]: https://github.com/redis/go-redis-entraid/releases/tag/v1.0.2 -[1.0.3]: https://github.com/redis/go-redis-entraid/releases/tag/v1.0.3 -[1.0.4]: https://github.com/redis/go-redis-entraid/releases/tag/v1.0.4 -[1.0.5]: https://github.com/redis/go-redis-entraid/releases/tag/v1.0.5 -[1.0.6]: https://github.com/redis/go-redis-entraid/releases/tag/v1.0.6 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 9947ff1..0000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,103 +0,0 @@ -# Contributing to go-redis-entraid - -We welcome contributions from the community! If you'd like to contribute to this project, please follow these guidelines: - -## Getting Started - -1. Fork the repository -2. Create a new branch for your feature or bugfix -3. Make your changes -4. Run the tests and ensure they pass -5. Submit a pull request - -## Development Setup - -```bash -# Clone your fork -git clone https://github.com/your-username/go-redis-entraid.git -cd go-redis-entraid - -# Install dependencies -go mod download - -# Run tests -go test ./... -``` - -## Code Style and Standards - -- Follow the Go standard formatting (`go fmt`) -- Write clear and concise commit messages -- Include tests for new features -- Update documentation as needed -- Follow the existing code style and patterns - -## Testing - -We maintain high test coverage for the project. When contributing: - -- Add tests for new features -- Ensure existing tests pass -- Run the test coverage tool: - ```bash - go test -coverprofile=cover.out ./... - go tool cover -html=cover.out - ``` - -## Pull Request Process - -1. Ensure your code passes all tests -2. Update the README.md if necessary -3. Submit your pull request with a clear description of the changes - -## Reporting Issues - -If you find a bug or have a feature request: - -1. Check the existing issues to avoid duplicates -2. Create a new issue with: - - A clear title and description - - Steps to reproduce (for bugs) - - Expected and actual behavior - - Environment details (Go version, OS, etc.) - -## Development Workflow - -1. Create a new branch for your feature/fix: - ```bash - git checkout -b feature/your-feature-name - ``` - -2. Make your changes and commit them: - ```bash - git add . - git commit -m "Description of your changes" - ``` - -3. Push your changes to your fork: - ```bash - git push origin feature/your-feature-name - ``` - -4. Create a pull request from your fork to the main repository - -## Review Process - -- All pull requests will be reviewed by maintainers -- Be prepared to make changes based on feedback -- Ensure your code meets the project's standards -- Address any CI/CD failures - -## Documentation - -- Update relevant documentation when making changes -- Include examples for new features -- Update the README if necessary -- Add comments to complex code sections - -## Questions? - -If you have any questions about contributing, please: -1. Check the existing documentation -2. Look through existing issues -3. Create a new issue if your question hasn't been answered \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 7566e14..0000000 --- a/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -BSD 2-Clause License - -Copyright (c) 2025, Redis Developer - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Makefile b/Makefile deleted file mode 100644 index bda5b9b..0000000 --- a/Makefile +++ /dev/null @@ -1,7 +0,0 @@ - -test.ci: - go test ./... -coverprofile=./cover.out -covermode=atomic -race -count 2 -timeout 5m - -test: - go test ./... -coverprofile=./cover.out -covermode=atomic -race -count 1 - go test ./... -bench=. -benchmem -count 1 -timeout 1m diff --git a/README.md b/README.md deleted file mode 100644 index 2a09549..0000000 --- a/README.md +++ /dev/null @@ -1,960 +0,0 @@ -# go-redis-entraid -Entra ID extension for go-redis - -[![build workflow](https://github.com/redis/go-redis-entraid/actions/workflows/build.yml/badge.svg)](https://github.com/redis/go-redis-entraid/actions) -[![PkgGoDev](https://pkg.go.dev/badge/github.com/redis/go-redis-entraid)](https://pkg.go.dev/github.com/redis/go-redis-entraid?tab=doc) -[![Go Report Card](https://goreportcard.com/badge/github.com/redis/go-redis-entraid)](https://goreportcard.com/report/github.com/redis/go-redis-entraid) - -## Table of Contents -- [Introduction](#introduction) -- [Quick Start](#quick-start) -- [Architecture Overview](#architecture-overview) -- [Authentication Providers](#authentication-providers) -- [Configuration Guide](#configuration-guide) -- [Examples](#examples) -- [Testing](#testing) -- [FAQ](#faq) -- [Error Handling](#error-handling) - -## Introduction - -go-redis-entraid is a Go library that provides Entra ID (formerly Azure AD) authentication support for Redis Enterprise Cloud. It enables secure authentication using various Entra ID identity types and manages token lifecycle automatically. - -### Version Compatibility -- Go: 1.23+ -- go-redis: v9.9.0+ - -### Key Features -- Support for multiple Entra ID identity types -- Automatic token refresh and management -- Configurable token refresh policies -- Retry mechanisms with exponential backoff -- Thread-safe token management -- Streaming credentials provider interface - -## Quick Start - -### Minimal Example -Here's the simplest way to get started: - -```go -package main - -import ( - "context" - "fmt" - "log" - "os" - "strings" - - "github.com/redis/go-redis-entraid/entraid" - "github.com/redis/go-redis/v9" -) - -func main() { - // Get required environment variables - clientID := os.Getenv("AZURE_CLIENT_ID") - redisEndpoint := os.Getenv("REDIS_ENDPOINT") - if clientID == "" || redisEndpoint == "" { - log.Fatal("AZURE_CLIENT_ID and REDIS_ENDPOINT environment variables are required") - } - - // Create credentials provider - provider, err := entraid.NewManagedIdentityCredentialsProvider(entraid.ManagedIdentityCredentialsProviderOptions{ - CredentialsProviderOptions: entraid.CredentialsProviderOptions{}, - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - UserAssignedObjectID: clientID, - ManagedIdentityType: identity.UserAssignedObjectID, - Scopes: []string{identity.RedisScopeDefault}, - }, - }) - if err != nil { - log.Fatalf("Failed to create credentials provider: %v", err) - } - - // Create Redis client - client := redis.NewClient(&redis.Options{ - Addr: redisEndpoint, - StreamingCredentialsProvider: provider, - }) - defer client.Close() - - // Test connection - ctx := context.Background() - if err := client.Ping(ctx).Err(); err != nil { - log.Fatalf("Failed to connect to Redis: %v", err) - } - log.Println("Connected to Redis!") -} -``` - -### Environment Setup -```bash -# Required environment variables -export AZURE_CLIENT_ID="your-client-id" -export REDIS_ENDPOINT="your-redis-endpoint:6380" - -# Optional environment variables -export AZURE_TENANT_ID="your-tenant-id" -export AZURE_CLIENT_SECRET="your-client-secret" -export AZURE_AUTHORITY_HOST="https://login.microsoftonline.com" # For custom authority -``` - -### Running the Example -```bash -go mod init your-app -go get github.com/redis/go-redis-entraid -go run main.go -``` - -## Architecture Overview - -### Component Diagram -```mermaid -graph TD - A[Redis Client] --> B[StreamingCredentialsProvider] - B --> C[Token Manager] - C --> D[Identity Provider] - D --> E[Azure Entra ID] - - subgraph "Token Management" - C --> F[Token Cache] - C --> G[Token Refresh] - C --> H[Error Handling] - end - - subgraph "Identity Providers" - D --> I[Managed Identity] - D --> J[Confidential Client] - D --> K[Default Azure Identity] - D --> L[Custom Provider] - end -``` - -### Token Lifecycle -```mermaid -sequenceDiagram - participant Client - participant TokenManager - participant IdentityProvider - participant Azure - - Client->>TokenManager: GetToken() - alt Token Valid - TokenManager->>Client: Return cached token - else Token Expired - TokenManager->>IdentityProvider: RequestToken() - IdentityProvider->>Azure: Authenticate - Azure->>IdentityProvider: Return token - IdentityProvider->>TokenManager: Cache token - TokenManager->>Client: Return new token - end -``` - -### Component Responsibilities - -1. **Redis Client** - - Handles Redis connections - - Manages connection pooling - - Implements Redis protocol - -2. **StreamingCredentialsProvider** - - Provides authentication credentials - - Handles token refresh - - Manages authentication state - -3. **Token Manager** - - Caches tokens - - Handles token refresh - - Implements retry logic - - Manages token lifecycle - -4. **Identity Provider** - - Authenticates with Azure - - Handles different auth types - - Manages credentials - -## Authentication Providers - -### Provider Selection Guide - -```mermaid -graph TD - A[Choose Authentication] --> B{Managed Identity?} - B -->|Yes| C{System Assigned?} - B -->|No| D{Client Credentials?} - C -->|Yes| E[SystemAssignedIdentity] - C -->|No| F[UserAssignedObjectID] - D -->|Yes| G{Client Secret?} - D -->|No| H[DefaultAzureIdentity] - G -->|Yes| I[ClientSecret] - G -->|No| J[ClientCertificate] -``` - -### Provider Comparison - -| Provider Type | Best For | Security | Configuration | Performance | -|--------------|----------|----------|---------------|-------------| -| System Assigned | Azure-hosted apps | Highest | Minimal | Best | -| User Assigned | Shared identity | High | Moderate | Good | -| Client Secret | Service auth | High | Moderate | Good | -| Client Cert | High security | Highest | Complex | Good | -| Default Azure | Development | Moderate | Minimal | Good | - -## Configuration Guide - -### Environment Variables -```bash -# Required -AZURE_CLIENT_ID=your-client-id -REDIS_ENDPOINT=your-redis-endpoint:6380 - -# Optional -AZURE_TENANT_ID=your-tenant-id -AZURE_CLIENT_SECRET=your-client-secret -``` - -### Available Configuration Options - -#### 1. CredentialsProviderOptions -Base options for credential providers includes the options for the token manager: -```go -type CredentialsProviderOptions struct { - // TokenManagerOptions is the options for the token manager. - // This is used to configure the token manager when requesting a token. - TokenManagerOptions manager.TokenManagerOptions -} -``` - -#### 2. TokenManagerOptions -Options for token management: -```go -type TokenManagerOptions struct { - // Optional: Ratio of token lifetime to trigger refresh (0-1) - // Default: 0.7 (refresh at 70% of token lifetime) - ExpirationRefreshRatio float64 - - // Optional: Minimum time before expiration to trigger refresh - // Default: 0 (no lower bound, refresh based on ExpirationRefreshRatio) - LowerRefreshBound time.Duration - - // Optional: Custom response parser - IdentityProviderResponseParser shared.IdentityProviderResponseParser - - // Optional: Configuration for retry behavior - RetryOptions RetryOptions - - // Optional: Timeout for token requests - RequestTimeout time.Duration -} -``` - -#### 3. RetryOptions -Options for retry behavior: -```go -type RetryOptions struct { - // Optional: Function to determine if an error is retryable - // Default: Checks for network errors and timeouts - IsRetryable func(err error) bool - - // Optional: Maximum number of retry attempts - // Default: 3 - MaxAttempts int - - // Optional: Initial delay between retries - // Default: 1 second - InitialDelay time.Duration - - // Optional: Maximum delay between retries - // Default: 10 seconds - MaxDelay time.Duration - - // Optional: Multiplier for exponential backoff - // Default: 2.0 - BackoffMultiplier float64 -} -``` - -#### 4. ManagedIdentityProviderOptions -Options for managed identity provider (user assigned or system assigned identity): -```go -type ManagedIdentityProviderOptions struct { - // Required: Type of managed identity - ManagedIdentityType ManagedIdentityType // SystemAssignedIdentity or UserAssignedObjectID - - // Optional: Client ID for user-assigned identity - UserAssignedObjectID string - - // Optional: Scopes for token access - // Default: ["https://redis.azure.com/.default"] - Scopes []string -} -``` - -#### 5. ConfidentialIdentityProviderOptions -Options for confidential identity provider (client secret or client sertificate): -```go -type ConfidentialIdentityProviderOptions struct { - // Required: Client ID for authentication - ClientID string - - // Required: Type of credentials - CredentialsType string // identity.ClientSecretCredentialType or identity.ClientCertificateCredentialType - - // Required for ClientSecret: Client secret value - ClientSecret string - - // Required for ClientCertificate: Client certificate - // Type: []*x509.Certificate - ClientCert []*x509.Certificate - - // Required for ClientCertificate: Client private key - // Type: crypto.PrivateKey - ClientPrivateKey crypto.PrivateKey - - // Required: Authority configuration - Authority AuthorityConfiguration - - // Optional: Scopes for token access - // Default: ["https://redis.azure.com/.default"] - Scopes []string -} -``` - -#### 6. AuthorityConfiguration -Options for authority configuration: -```go -type AuthorityConfiguration struct { - // Required: Type of authority - AuthorityType AuthorityType // "default", "multi-tenant", or "custom" - - // Required: Azure AD tenant ID - // Use "common" for multi-tenant applications - TenantID string - - // Optional: Custom authority URL - // Required for custom authority type - Authority string -} -``` - -#### 7. DefaultAzureIdentityProviderOptions -Options for default Azure identity: -```go -type DefaultAzureIdentityProviderOptions struct { - // Optional: Azure identity provider options - AzureOptions *azidentity.DefaultAzureCredentialOptions - - // Optional: Scopes for token access - // Default: ["https://redis.azure.com/.default"] - Scopes []string -} -``` - -### Configuration Examples - -#### Basic Configuration -```go -options := entraid.CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - LowerRefreshBounds: 10000, - }, -} -``` - -#### Advanced Configuration -```go -options := entraid.CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - LowerRefreshBounds: 10000, - RetryOptions: manager.RetryOptions{ - MaxAttempts: 3, - InitialDelay: 1000 * time.Millisecond, - MaxDelay: 30000 * time.Millisecond, - BackoffMultiplier: 2.0, - IsRetryable: func(err error) bool { - return strings.Contains(err.Error(), "network error") || - strings.Contains(err.Error(), "timeout") - }, - }, - }, -} -``` - -#### Authority Configuration -```go -// Multi-tenant application -authority := identity.AuthorityConfiguration{ - AuthorityType: identity.AuthorityTypeMultiTenant, - TenantID: "common", -} - -// Single-tenant application -authority := identity.AuthorityConfiguration{ - AuthorityType: identity.AuthorityTypeDefault, - TenantID: os.Getenv("AZURE_TENANT_ID"), -} - -// Custom authority -authority := identity.AuthorityConfiguration{ - AuthorityType: identity.AuthorityTypeCustom, - TenantID: os.Getenv("AZURE_TENANT_ID"), - Authority: fmt.Sprintf("%s/%s/v2.0", - os.Getenv("AZURE_AUTHORITY_HOST"), - os.Getenv("AZURE_TENANT_ID")), -} -``` - -## Examples - -### System Assigned Identity -```go -// Create provider for system assigned identity -provider, err := entraid.NewManagedIdentityCredentialsProvider(entraid.ManagedIdentityCredentialsProviderOptions{ - CredentialsProviderOptions: entraid.CredentialsProviderOptions{}, - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - ManagedIdentityType: identity.SystemAssignedIdentity, - Scopes: []string{"https://redis.azure.com/.default"}, - }, -}) -``` - -### User Assigned Identity -```go -// Create provider for user assigned identity -provider, err := entraid.NewManagedIdentityCredentialsProvider(entraid.ManagedIdentityCredentialsProviderOptions{ - CredentialsProviderOptions: entraid.CredentialsProviderOptions{}, - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - ManagedIdentityType: identity.UserAssignedObjectID, - UserAssignedObjectID: os.Getenv("AZURE_USER_ASSIGNED_MANAGED_ID"), - Scopes: []string{"https://redis.azure.com/.default"}, - }, -}) -``` - -### Client Secret Authentication -```go -// Create provider for client secret authentication -provider, err := entraid.NewConfidentialCredentialsProvider(entraid.ConfidentialCredentialsProviderOptions{ - ConfidentialIdentityProviderOptions: identity.ConfidentialIdentityProviderOptions{ - ClientID: os.Getenv("AZURE_CLIENT_ID"), - ClientSecret: os.Getenv("AZURE_CLIENT_SECRET"), - CredentialsType: identity.ClientSecretCredentialType, - Authority: identity.AuthorityConfiguration{ - AuthorityType: identity.AuthorityTypeMultiTenant, - TenantID: os.Getenv("AZURE_TENANT_ID"), - }, - Scopes: []string{"https://redis.azure.com/.default"}, - }, -}) -``` - -### Client Certificate Authentication -```go -// Create provider for client certificate authentication -cert, err := tls.LoadX509KeyPair("cert.pem", "key.pem") -if err != nil { - log.Fatal(err) -} - -provider, err := entraid.NewConfidentialCredentialsProvider(entraid.ConfidentialCredentialsProviderOptions{ - ConfidentialIdentityProviderOptions: identity.ConfidentialIdentityProviderOptions{ - ClientID: os.Getenv("AZURE_CLIENT_ID"), - CredentialsType: identity.ClientCertificateCredentialType, - Authority: identity.AuthorityConfiguration{ - AuthorityType: identity.AuthorityTypeMultiTenant, - TenantID: os.Getenv("AZURE_TENANT_ID"), - }, - Scopes: []string{"https://redis.azure.com/.default"}, - ClientCert: []*x509.Certificate{cert.Leaf}, - ClientPrivateKey: cert.PrivateKey, - }, -}) -``` - -### Default Azure Identity -```go -// Create a default credentials provider -provider, err := entraid.NewDefaultAzureCredentialsProvider(entraid.DefaultAzureCredentialsProviderOptions{ - DefaultAzureIdentityProviderOptions: identity.DefaultAzureIdentityProviderOptions{ - Scopes: []string{"https://redis.azure.com/.default"}, - }, -}) -``` - -### Advanced Usage with Custom Identity Provider - -This example shows how to implement your own IdentityProvider while leveraging our TokenManager and StreamingCredentialsProvider. This is useful when you need to authenticate with a custom token source but want to benefit from our token management and streaming capabilities. - -```go -package main - -import ( - "context" - "fmt" - "log" - "os" - "strings" - "time" - - "github.com/redis/go-redis-entraid/entraid" - "github.com/redis/go-redis-entraid/entraid/identity" - "github.com/redis/go-redis-entraid/entraid/manager" - "github.com/redis/go-redis-entraid/entraid/shared" - "github.com/redis/go-redis/v9" -) - -// CustomIdentityProvider implements the IdentityProvider interface -type CustomIdentityProvider struct { - // Add any fields needed for your custom authentication - tokenEndpoint string - clientID string - clientSecret string -} - -// RequestToken implements the IdentityProvider interface -func (p *CustomIdentityProvider) RequestToken(ctx context.Context) (shared.IdentityProviderResponse, error) { - // Implement your custom token retrieval logic here - // This could be calling your own auth service, using a different auth protocol, etc. - - // For this example, we'll simulate getting a JWT token - token := "your.jwt.token" - - // Create a response using NewIDPResponse - return shared.NewIDPResponse(shared.ResponseTypeRawToken, token) -} - -func main() { - // Create your custom identity provider - customProvider := &CustomIdentityProvider{ - tokenEndpoint: "https://your-auth-endpoint.com/token", - clientID: os.Getenv("CUSTOM_CLIENT_ID"), - clientSecret: os.Getenv("CUSTOM_CLIENT_SECRET"), - } - - // Create token manager with your custom provider - tokenManager, err := manager.NewTokenManager(customProvider, manager.TokenManagerOptions{ - // Configure token refresh behavior - ExpirationRefreshRatio: 0.7, - LowerRefreshBound: time.Second * 10, - RetryOptions: manager.RetryOptions{ - MaxAttempts: 3, - InitialDelay: time.Second, - MaxDelay: time.Second * 10, - BackoffMultiplier: 2.0, - IsRetryable: func(err error) bool { - return strings.Contains(err.Error(), "network error") || - strings.Contains(err.Error(), "timeout") - }, - }, - RequestTimeout: time.Second * 30, - }) - if err != nil { - log.Fatalf("Failed to create token manager: %v", err) - } - - // Create credentials provider using our StreamingCredentialsProvider - provider, err := entraid.NewCredentialsProvider(tokenManager, entraid.CredentialsProviderOptions{ - // Add any additional options needed - OnReAuthenticationError: func(err error) error { - log.Printf("Re-authentication error: %v", err) - return err - }, - }) - if err != nil { - log.Fatalf("Failed to create credentials provider: %v", err) - } - - // Create Redis client with your custom provider - client := redis.NewClient(&redis.Options{ - Addr: os.Getenv("REDIS_ENDPOINT"), - StreamingCredentialsProvider: provider, - }) - defer client.Close() - - // Test the connection - ctx := context.Background() - if err := client.Ping(ctx).Err(); err != nil { - log.Fatalf("Failed to connect to Redis: %v", err) - } - log.Println("Connected to Redis with custom identity provider!") -} -``` - -Key points about this implementation: - -1. **Custom Identity Provider**: - - Implements the `IdentityProvider` interface with `RequestToken` method - - Returns a response using `shared.NewIDPResponse` with `ResponseTypeRawToken` - - Handles your custom authentication logic - -2. **Token Management**: - - Uses our `TokenManager` for automatic token refresh - - Benefits from our retry mechanisms - - Handles token caching and lifecycle - - Configurable refresh timing and retry behavior - -3. **Streaming Credentials**: - - Uses our `StreamingCredentialsProvider` for Redis integration - - Handles connection authentication - - Manages token streaming to Redis - -4. **Error Handling**: - - Implements proper error handling - - Uses our error callback mechanisms - - Provides logging and monitoring hooks - -This approach gives you the flexibility of custom authentication while benefiting from our robust token management and Redis integration features. - -## Testing - -### Unit Testing -```go -func TestManagedIdentityProvider(t *testing.T) { - // Create test provider - provider, err := entraid.NewManagedIdentityCredentialsProvider(entraid.ManagedIdentityCredentialsProviderOptions{ - CredentialsProviderOptions: entraid.CredentialsProviderOptions{}, - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - UserAssignedObjectID: "test-managed-id", - ManagedIdentityType: identity.UserAssignedObjectID, - Scopes: []string{identity.RedisScopeDefault}, - }, - }) - if err != nil { - t.Fatalf("Failed to create provider: %v", err) - } - - // Test token retrieval - response, err := provider.RequestToken(context.Background()) - if err != nil { - t.Fatalf("Failed to get token: %v", err) - } - - // Check response type and get token - switch response.Type() { - case shared.ResponseTypeRawToken: - token, err := response.(shared.RawTokenIDPResponse).RawToken() - if err != nil { - t.Fatalf("Failed to get raw token: %v", err) - } - if token == "" { - t.Error("Expected non-empty token") - } - default: - t.Errorf("Unexpected response type: %s", response.Type()) - } -} -``` - -### Integration Testing -```go -func TestRedisConnection(t *testing.T) { - // Create provider - provider, err := entraid.NewManagedIdentityCredentialsProvider(entraid.ManagedIdentityCredentialsProviderOptions{ - CredentialsProviderOptions: entraid.CredentialsProviderOptions{}, - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - UserAssignedObjectID: os.Getenv("AZURE_CLIENT_ID"), - ManagedIdentityType: identity.UserAssignedObjectID, - Scopes: []string{identity.RedisScopeDefault}, - }, - }) - if err != nil { - t.Fatalf("Failed to create provider: %v", err) - } - - // Create Redis client - client := redis.NewClient(&redis.Options{ - Addr: os.Getenv("REDIS_ENDPOINT"), - StreamingCredentialsProvider: provider, - }) - defer client.Close() - - // Test connection - ctx := context.Background() - if err := client.Ping(ctx).Err(); err != nil { - t.Fatalf("Failed to connect to Redis: %v", err) - } -} -``` - -## FAQ - -### Q: How do I handle token expiration? -A: The library handles token expiration automatically. Tokens are refreshed when they reach 70% of their lifetime (configurable via `ExpirationRefreshRatio`). You can also set a minimum time before expiration to trigger refresh using `LowerRefreshBound`. The token manager will automatically handle token refresh and caching. - -### Q: How do I handle connection failures? -A: The library includes built-in retry mechanisms in the TokenManager. You can configure retry behavior using `RetryOptions`: -```go -RetryOptions: manager.RetryOptions{ - MaxAttempts: 3, - InitialDelay: time.Second, - MaxDelay: time.Second * 10, - BackoffMultiplier: 2.0, - IsRetryable: func(err error) bool { - return strings.Contains(err.Error(), "network error") || - strings.Contains(err.Error(), "timeout") - }, -} -``` - -### Q: What happens if token refresh fails? -A: The library will retry according to the configured `RetryOptions`. If all retries fail, the error will be propagated to the client. You can customize the retry behavior by: -1. Setting the maximum number of attempts -2. Configuring the initial and maximum delay between retries using `time.Duration` values -3. Setting the backoff multiplier for exponential backoff -4. Providing a custom function to determine which errors are retryable - -### Q: How do I implement custom authentication? -A: You can create a custom identity provider by implementing the `IdentityProvider` interface: -```go -type IdentityProvider interface { - // RequestToken requests a token from the identity provider. - // The context is passed to the request to allow for cancellation and timeouts. - // It returns the token, the expiration time, and an error if any. - RequestToken(ctx context.Context) (IdentityProviderResponse, error) -} -``` - -The response types are defined as constants: -```go -const ( - // ResponseTypeAuthResult is the type of the auth result. - ResponseTypeAuthResult = "AuthResult" - // ResponseTypeAccessToken is the type of the access token. - ResponseTypeAccessToken = "AccessToken" - // ResponseTypeRawToken is the type of the response when you have a raw string. - ResponseTypeRawToken = "RawToken" -) -``` - -The `IdentityProviderResponse` interface and related interfaces provide methods to access the authentication result: -```go -// IdentityProviderResponse is the base interface that defines the type method -type IdentityProviderResponse interface { - // Type returns the type of identity provider response - Type() string -} - -// AuthResultIDPResponse defines the method for getting the auth result -type AuthResultIDPResponse interface { - // AuthResult returns the Microsoft Authentication Library AuthResult. - // Returns ErrAuthResultNotFound if the auth result is not set. - AuthResult() (public.AuthResult, error) -} - -// AccessTokenIDPResponse defines the method for getting the access token -type AccessTokenIDPResponse interface { - // AccessToken returns the Azure SDK AccessToken. - // Returns ErrAccessTokenNotFound if the access token is not set. - AccessToken() (azcore.AccessToken, error) -} - -// RawTokenIDPResponse defines the method for getting the raw token -type RawTokenIDPResponse interface { - // RawToken returns the raw token string. - // Returns ErrRawTokenNotFound if the raw token is not set. - RawToken() (string, error) -} -``` - -You can create a new response using the `NewIDPResponse` function: -```go -// NewIDPResponse creates a new auth result based on the type provided. -// Type can be either AuthResult, AccessToken, or RawToken. -// Second argument is the result of the type provided in the first argument. -func NewIDPResponse(responseType string, result interface{}) (IdentityProviderResponse, error) -``` - -Here's an example of how to use these types in a custom identity provider: -```go -type CustomIdentityProvider struct { - tokenEndpoint string - clientID string - clientSecret string -} - -func (p *CustomIdentityProvider) RequestToken(ctx context.Context) (shared.IdentityProviderResponse, error) { - // Get the token from your custom auth service - token, err := p.getTokenFromCustomService() - if err != nil { - return nil, err - } - - // Create a response based on the token type - switch token.Type { - case "jwt": - return shared.NewIDPResponse(shared.ResponseTypeRawToken, token.Value) - case "access_token": - return shared.NewIDPResponse(shared.ResponseTypeAccessToken, token.Value) - case "auth_result": - return shared.NewIDPResponse(shared.ResponseTypeAuthResult, token.Value) - default: - return nil, fmt.Errorf("unsupported token type: %s", token.Type) - } -} - -// Example usage: -func main() { - provider := &CustomIdentityProvider{ - tokenEndpoint: "https://your-auth-endpoint.com/token", - clientID: os.Getenv("CUSTOM_CLIENT_ID"), - clientSecret: os.Getenv("CUSTOM_CLIENT_SECRET"), - } - - response, err := provider.RequestToken(context.Background()) - if err != nil { - log.Fatalf("Failed to get token: %v", err) - } - - switch response.Type() { - case shared.ResponseTypeRawToken: - token, err := response.(shared.RawTokenIDPResponse).RawToken() - if err != nil { - log.Fatalf("Failed to get raw token: %v", err) - } - log.Printf("Got raw token: %s", token) - - case shared.ResponseTypeAccessToken: - token, err := response.(shared.AccessTokenIDPResponse).AccessToken() - if err != nil { - log.Fatalf("Failed to get access token: %v", err) - } - log.Printf("Got access token: %s", token.Token) - - case shared.ResponseTypeAuthResult: - result, err := response.(shared.AuthResultIDPResponse).AuthResult() - if err != nil { - log.Fatalf("Failed to get auth result: %v", err) - } - log.Printf("Got auth result: %s", result.AccessToken) - } -} -``` - -### Q: Can I customize how token responses are parsed? -A: Yes, you can provide a custom `IdentityProviderResponseParser` in the `TokenManagerOptions`. This allows you to handle custom token formats or implement special parsing logic. - -### Q: What's the difference between managed identity types? -A: There are three main types of managed identities in Azure: - -1. **System Assigned Managed Identity**: - - Automatically created and managed by Azure - - Tied directly to a specific Azure resource (VM, App Service, etc.) - - Cannot be shared between resources - - Automatically deleted when the resource is deleted - - Best for single-resource applications with dedicated identity - -2. **User Assigned Managed Identity**: - - Created and managed independently of resources - - Can be assigned to multiple Azure resources - - Has its own lifecycle independent of resources - - Can be shared across multiple resources - - Best for applications that need a shared identity or run across multiple resources - -3. **Default Azure Identity**: - - Uses environment-based authentication - - Automatically tries multiple authentication methods in sequence: - 1. Environment variables - 2. Managed Identity - 3. Visual Studio Code - 4. Azure CLI - 5. Visual Studio - - Best for development and testing environments - - Provides flexibility during development without changing code - -The choice between these types depends on your specific use case: -- Use System Assigned for single-resource applications -- Use User Assigned for shared identity scenarios -- Use Default Azure Identity for development and testing - -## Error Handling - -### Available Errors - -The library provides several error types that you can check against: - -```go -// Import the shared package to access error types -import "github.com/redis/go-redis-entraid/shared" - -// Available error types: -var ( - // ErrInvalidIDPResponse is returned when the response from the identity provider is invalid - ErrInvalidIDPResponse = shared.ErrInvalidIDPResponse - - // ErrInvalidIDPResponseType is returned when the response type is not supported - ErrInvalidIDPResponseType = shared.ErrInvalidIDPResponseType - - // ErrAuthResultNotFound is returned when trying to get an AuthResult that is not set - ErrAuthResultNotFound = shared.ErrAuthResultNotFound - - // ErrAccessTokenNotFound is returned when trying to get an AccessToken that is not set - ErrAccessTokenNotFound = shared.ErrAccessTokenNotFound - - // ErrRawTokenNotFound is returned when trying to get a RawToken that is not set - ErrRawTokenNotFound = shared.ErrRawTokenNotFound -) -``` - -### Error Handling Example - -Here's how to handle errors when working with identity provider responses: - -```go -// Example of handling different response types and their errors -response, err := identityProvider.RequestToken(ctx) -if err != nil { - // Handle request error - return err -} - -switch response.Type() { -case shared.ResponseTypeAuthResult: - authResult, err := response.(shared.AuthResultIDPResponse).AuthResult() - if err != nil { - if errors.Is(err, shared.ErrAuthResultNotFound) { - // Handle missing auth result - } - return err - } - // Use authResult... - -case shared.ResponseTypeAccessToken: - accessToken, err := response.(shared.AccessTokenIDPResponse).AccessToken() - if err != nil { - if errors.Is(err, shared.ErrAccessTokenNotFound) { - // Handle missing access token - } - return err - } - // Use accessToken... - -case shared.ResponseTypeRawToken: - rawToken, err := response.(shared.RawTokenIDPResponse).RawToken() - if err != nil { - if errors.Is(err, shared.ErrRawTokenNotFound) { - // Handle missing raw token - } - return err - } - // Use rawToken... -} -``` - -### Response Types - -The library supports three types of identity provider responses: - -1. **AuthResult** (`ResponseTypeAuthResult`) - - Contains Microsoft Authentication Library AuthResult - - Returns `ErrAuthResultNotFound` if not set - -2. **AccessToken** (`ResponseTypeAccessToken`) - - Contains Azure SDK AccessToken - - Returns `ErrAccessTokenNotFound` if not set - -3. **RawToken** (`ResponseTypeRawToken`) - - Contains raw token string - - Returns `ErrRawTokenNotFound` if not set \ No newline at end of file diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md deleted file mode 100644 index 7a3cc86..0000000 --- a/RELEASE_NOTES.md +++ /dev/null @@ -1,72 +0,0 @@ -# v1.0.3 (2025-05-30) - -## Introduction - -ClientID in CredentialsProviderOptions is not used and will be removed in a future version. -The correct one to use is the one in the identity provider options (e.g. ConfidentialIdentityProviderOptions). - -## Changes - -## 🧰 Maintenance - -- refactor(provider): Mark ClientID as deprecated, use correct one in examples. ([#8](https://github.com/redis/go-redis-entraid/pull/8)) - -## Compatibility - -- Go: 1.23+ -- go-redis: v9.9.0+ - -# v1.0.2 (2025-05-29) - -## Changes - -- fix(manager): optimize durationToRenewal ([#6](https://github.com/redis/go-redis-entraid/pull/6)) -- chore(documentation): add release notes, add badges in readme ([#7](https://github.com/redis/go-redis-entraid/pull/7)) -- chore(dependencies): update dependencies - -## Compatibility - -- Go: 1.23+ -- go-redis: v9.9.0+ - -# v1.0.0 (2025-05-27) - -## Introduction - -We are excited to announce the General Availability release of **go-redis-entraid**, a Go library that enables seamless Entra ID (formerly Azure AD) authentication for Redis Enterprise Cloud. - -## Background - -Redis Enterprise Cloud supports Microsoft Entra ID for authentication, allowing you to use your organization's existing identity management system to control access to Redis databases. The go-redis-entraid library bridges the gap between the popular [go-redis](https://github.com/redis/go-redis) client and Entra ID, providing: - -- Automatic token acquisition and renewal -- Support for multiple authentication mechanisms -- Seamless integration with existing Redis applications -- Secure credential management - -## Key Features - -- **Multiple Authentication Methods**: Support for various Entra ID authentication flows: - - Client Secret - - Client Certificate - - Managed Identity (System and User-assigned) - - Default Azure Identity Provider (for local development) - -- **Automatic Token Management**: Handles token acquisition, caching, and renewal without requiring manual intervention. - -- **Configuration Flexibility**: Supports configuration through environment variables, code, or configuration files. - -- **Comprehensive Error Handling**: Detailed error information and recovery strategies. - -## Getting Started - -### Installation - -```bash -go get github.com/redis/go-redis-entraid@v1.0.0 -``` - -## Compatibility - -- Go: 1.16+ -- go-redis: v9.9.0+ diff --git a/credentials_provider.go b/credentials_provider.go deleted file mode 100644 index 3e27527..0000000 --- a/credentials_provider.go +++ /dev/null @@ -1,165 +0,0 @@ -// Package entraid provides a credentials provider that manages token retrieval and notifies listeners -// of token updates. It implements the auth.StreamingCredentialsProvider interface and is designed -// for use with the Redis authentication system. -package entraid - -import ( - "fmt" - "sync" - - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis-entraid/token" - "github.com/redis/go-redis/v9/auth" -) - -// Ensure entraidCredentialsProvider implements the auth.StreamingCredentialsProvider interface. -var _ auth.StreamingCredentialsProvider = (*entraidCredentialsProvider)(nil) - -// entraidCredentialsProvider is a struct that implements the StreamingCredentialsProvider interface. -type entraidCredentialsProvider struct { - options CredentialsProviderOptions // Configuration options for the provider. - - tokenManager manager.TokenManager // Manages token retrieval. - stopTokenManager manager.StopFunc // Function to stop the token manager. - - // listeners is a slice of listeners that are notified when the token manager receives a new token. - listeners []auth.CredentialsListener // Slice of listeners notified on token updates. - - // rwLock is a mutex that is used to synchronize access to the listeners slice. - rwLock sync.RWMutex // Mutex for synchronizing access to the listeners slice. - - tmLock sync.Mutex -} - -// onTokenNext is a method that is called when the token manager receives a new token. -// It notifies all registered listeners with the new token. -func (e *entraidCredentialsProvider) onTokenNext(t *token.Token) { - e.rwLock.RLock() - // Make a deep copy of the listeners slice to avoid data race - listeners := make([]auth.CredentialsListener, len(e.listeners)) - copy(listeners, e.listeners) - e.rwLock.RUnlock() - // Notify all listeners with the new token. - for _, listener := range listeners { - listener.OnNext(t) - } -} - -// onTokenError is a method that is called when the token manager encounters an error. -// It notifies all registered listeners with the error. -func (e *entraidCredentialsProvider) onTokenError(err error) { - e.rwLock.RLock() - // Make a deep copy of the listeners slice to avoid data race - listeners := make([]auth.CredentialsListener, len(e.listeners)) - copy(listeners, e.listeners) - e.rwLock.RUnlock() - - // Notify all listeners with the error - for _, listener := range listeners { - listener.OnError(err) - } -} - -// Subscribe subscribes a listener to the credentials provider. -// It returns the current credentials, a cancel function to unsubscribe, and an error if the subscription fails. -// -// Parameters: -// - listener: The listener that will receive updates about token changes. -// -// Returns: -// - auth.Credentials: The current credentials for the listener. -// - auth.UnsubscribeFunc: A function that can be called to unsubscribe the listener. -// - error: An error if the subscription fails, such as if the token cannot be retrieved. -// -// Note: If the listener is already subscribed, it will not receive duplicate notifications. -func (e *entraidCredentialsProvider) Subscribe(listener auth.CredentialsListener) (auth.Credentials, auth.UnsubscribeFunc, error) { - // check if the manager is working - // If the stopTokenManager is nil, the token manager is not started. - e.tmLock.Lock() - if e.stopTokenManager == nil { - stopTM, err := e.tokenManager.Start(tokenListenerFromCP(e)) - if err != nil { - return nil, nil, fmt.Errorf("couldn't start token manager: %w", err) - } - e.stopTokenManager = stopTM - } - e.tmLock.Unlock() - - token, err := e.tokenManager.GetToken(false) - if err != nil { - return nil, nil, fmt.Errorf("couldn't get token: %w", err) - } - - e.rwLock.Lock() - // Check if the listener is already in the list of listeners. - alreadySubscribed := false - for _, l := range e.listeners { - if l == listener { - alreadySubscribed = true - break - } - } - - if !alreadySubscribed { - // add new listener - e.listeners = append(e.listeners, listener) - } - e.rwLock.Unlock() - - unsub := func() error { - // Remove the listener from the list of listeners. - e.rwLock.Lock() - defer e.rwLock.Unlock() - - for i, l := range e.listeners { - if l == listener { - e.listeners = append(e.listeners[:i], e.listeners[i+1:]...) - break - } - } - - // Clear the listeners slice if it's empty - if len(e.listeners) == 0 { - e.listeners = make([]auth.CredentialsListener, 0) - e.tmLock.Lock() - if e.stopTokenManager != nil { - err := e.stopTokenManager() - if err != nil { - return fmt.Errorf("couldn't cancel token manager: %w", err) - } - // Set the stopTokenManager to nil to indicate that it has been stopped. - // This prevents multiple calls to stopTokenManager. - e.stopTokenManager = nil - } - e.tmLock.Unlock() - } - return nil - } - - return token, unsub, nil -} - -// NewCredentialsProvider creates a new credentials provider with the specified token manager and options. -// It returns a StreamingCredentialsProvider interface and an error if the token manager cannot be started. -// -// Parameters: -// - tokenManager: The TokenManager used to obtain tokens. -// - options: Options for configuring the credentials provider. -// -// Returns: -// - auth.StreamingCredentialsProvider: The newly created credentials provider. -// - error: An error if the token manager cannot be started. -func NewCredentialsProvider(tokenManager manager.TokenManager, options CredentialsProviderOptions) (auth.StreamingCredentialsProvider, error) { - cp := &entraidCredentialsProvider{ - tokenManager: tokenManager, - options: options, - listeners: make([]auth.CredentialsListener, 0), - } - // Start the token manager. - stop, err := tokenManager.Start(tokenListenerFromCP(cp)) - if err != nil { - return nil, fmt.Errorf("couldn't start token manager: %w", err) - } - cp.stopTokenManager = stop - return cp, nil -} diff --git a/credentials_provider_test.go b/credentials_provider_test.go deleted file mode 100644 index 4a10a9d..0000000 --- a/credentials_provider_test.go +++ /dev/null @@ -1,1095 +0,0 @@ -package entraid - -// This file contains comprehensive tests for the StreamingCredentialsProvider deadlock bug. -// -// Bug Summary: -// A deadlock occurs when listener callbacks (OnNext/OnError) are invoked while holding RLock, -// and the listener callback triggers an unsubscribe operation that tries to acquire Lock. -// Since RWMutex doesn't allow upgrading read lock to write lock, this causes a deadlock. -// -// Real-world scenario: -// 1. Provider calls onTokenNext/onTokenError while holding RLock -// 2. ReAuthCredentialsListener.OnNext/OnError triggers re-authentication -// 3. Re-auth fails and closes the Redis connection -// 4. Connection close triggers provider's unsubscribe function -// 5. Unsubscribe tries to acquire Lock while RLock is still held -// 6. Deadlock occurs, blocking token refresh indefinitely -// -// To reproduce the bug in real scenarios: -// 1. Set up Redis with authentication -// 2. Use StreamingCredentialsProvider with token refresh -// 3. Simulate authentication failures that trigger connection close -// 4. Observe that token refresh hangs indefinitely - -import ( - "errors" - "sync" - "sync/atomic" - "testing" - "time" - - "github.com/redis/go-redis-entraid/identity" - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis-entraid/shared" - "github.com/redis/go-redis-entraid/token" - "github.com/redis/go-redis/v9/auth" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" -) - -func TestCredentialsProviderErrorScenarios(t *testing.T) { - t.Run("token manager start error", func(t *testing.T) { - // Create a test provider with invalid options - options := ConfidentialCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - ConfidentialIdentityProviderOptions: identity.ConfidentialIdentityProviderOptions{ - ClientID: "test-client-id", - CredentialsType: "invalid-type", // Invalid credentials type - ClientSecret: "test-secret", - Scopes: []string{identity.RedisScopeDefault}, - Authority: identity.AuthorityConfiguration{}, - }, - } - - provider, err := NewConfidentialCredentialsProvider(options) - assert.Error(t, err) - assert.Nil(t, provider) - }) - - t.Run("token manager get token error", func(t *testing.T) { - // Create a test provider with invalid options - options := ConfidentialCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - ConfidentialIdentityProviderOptions: identity.ConfidentialIdentityProviderOptions{ - ClientID: "test-client-id", - CredentialsType: identity.ClientSecretCredentialType, - ClientSecret: "", // Empty client secret - Scopes: []string{identity.RedisScopeDefault}, - Authority: identity.AuthorityConfiguration{}, - }, - } - - provider, err := NewConfidentialCredentialsProvider(options) - assert.Error(t, err) - assert.Nil(t, provider) - }) - - t.Run("concurrent error handling", func(t *testing.T) { - // Create a test provider with invalid options - options := ManagedIdentityCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - ManagedIdentityType: "invalid-type", // Invalid managed identity type - Scopes: []string{identity.RedisScopeDefault}, - }, - } - - provider, err := NewManagedIdentityCredentialsProvider(options) - assert.Error(t, err) - assert.Nil(t, provider) - }) - - t.Run("concurrent token updates", func(t *testing.T) { - // Create a test provider with invalid options - options := DefaultAzureCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - DefaultAzureIdentityProviderOptions: identity.DefaultAzureIdentityProviderOptions{ - Scopes: []string{}, // Empty scopes - }, - } - - provider, err := NewDefaultAzureCredentialsProvider(options) - // bad options - empty scopes - assert.Error(t, err) - assert.Nil(t, provider) - }) -} - -func TestCredentialsProviderWithMockIdentityProvider(t *testing.T) { - t.Parallel() - - t.Run("Subscribe and Unsubscribe", func(t *testing.T) { - t.Parallel() - - // Create mock token manager - tm := &fakeTokenManager{ - token: token.New( - "test", - "test", - "test-token", - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ), - } - - // Create credentials provider - cp, err := NewCredentialsProvider(tm, CredentialsProviderOptions{}) - assert.NoError(t, err) - assert.NotNil(t, cp) - - // Create mock listener - listener := &mockCredentialsListener{ - LastTokenCh: make(chan string), - LastErrCh: make(chan error), - } - - // Subscribe listener - credentials, cancel, err := cp.Subscribe(listener) - assert.NoError(t, err) - assert.NotNil(t, credentials) - assert.NotNil(t, cancel) - - // Wait for initial token - tk, err := listener.readWithTimeout(time.Second) - assert.NoError(t, err) - assert.Equal(t, "test-token", tk) - - // Unsubscribe - err = cancel() - assert.NoError(t, err) - }) - - t.Run("Multiple Listeners", func(t *testing.T) { - t.Parallel() - - // Create mock token manager - tm := &fakeTokenManager{ - token: token.New( - "test", - "test", - "test-token", - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ), - } - - // Create credentials provider - cp, err := NewCredentialsProvider(tm, CredentialsProviderOptions{}) - assert.NoError(t, err) - assert.NotNil(t, cp) - - // Create multiple mock listeners - listener1 := &mockCredentialsListener{ - LastTokenCh: make(chan string), - LastErrCh: make(chan error), - } - listener2 := &mockCredentialsListener{ - LastTokenCh: make(chan string), - LastErrCh: make(chan error), - } - - // Subscribe first listener - credentials1, cancel1, err := cp.Subscribe(listener1) - assert.NoError(t, err) - assert.NotNil(t, credentials1) - assert.NotNil(t, cancel1) - - // Subscribe second listener - credentials2, cancel2, err := cp.Subscribe(listener2) - assert.NoError(t, err) - assert.NotNil(t, credentials2) - assert.NotNil(t, cancel2) - - // Wait for initial tokens - token1, err := listener1.readWithTimeout(time.Second) - assert.NoError(t, err) - assert.Equal(t, "test-token", token1) - - token2, err := listener2.readWithTimeout(time.Second) - assert.NoError(t, err) - assert.Equal(t, "test-token", token2) - - // Unsubscribe first listener - err = cancel1() - assert.NoError(t, err) - - // Unsubscribe second listener - err = cancel2() - assert.NoError(t, err) - }) - - t.Run("Token Updates", func(t *testing.T) { - t.Parallel() - - // Create mock token manager - tm := &fakeTokenManager{ - token: token.New( - "test", - "test", - "initial-token", - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ), - } - - // Create credentials provider - cp, err := NewCredentialsProvider(tm, CredentialsProviderOptions{}) - assert.NoError(t, err) - assert.NotNil(t, cp) - - // Create mock listener - listener := &mockCredentialsListener{ - LastTokenCh: make(chan string), - LastErrCh: make(chan error), - } - - // Subscribe listener - credentials, cancel, err := cp.Subscribe(listener) - assert.NoError(t, err) - assert.NotNil(t, credentials) - assert.NotNil(t, cancel) - - // Wait for initial token - tk, err := listener.readWithTimeout(time.Second) - assert.NoError(t, err) - assert.Equal(t, "initial-token", tk) - - tm.lock.Lock() - // Update token - tm.token = token.New( - "test", - "test", - "updated-token", - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - tm.lock.Unlock() - - // Wait for token update - tk, err = listener.readWithTimeout(time.Second) - assert.NoError(t, err) - assert.Equal(t, "updated-token", tk) - - // Unsubscribe - err = cancel() - assert.NoError(t, err) - }) - - t.Run("Error Handling", func(t *testing.T) { - t.Parallel() - - // Create mock token manager with error - tm := &fakeTokenManager{ - err: assert.AnError, - } - - // Create credentials provider - cp, err := NewCredentialsProvider(tm, CredentialsProviderOptions{}) - assert.Error(t, err) - assert.Nil(t, cp) - }) -} - -func TestCredentialsProviderOptions(t *testing.T) { - t.Run("default token manager factory", func(t *testing.T) { - options := CredentialsProviderOptions{} - factory := options.getTokenManagerFactory() - assert.NotNil(t, factory) - }) - - t.Run("custom token manager factory", func(t *testing.T) { - m := &fakeTokenManager{} - customFactory := func(shared.IdentityProvider, manager.TokenManagerOptions) (manager.TokenManager, error) { - return m, nil - } - options := CredentialsProviderOptions{ - tokenManagerFactory: customFactory, - } - tm, err := options.getTokenManagerFactory()(nil, manager.TokenManagerOptions{}) - assert.NotNil(t, tm) - assert.NoError(t, err) - assert.Equal(t, m, tm) - }) -} - -func TestCredentialsProviderSubscribe(t *testing.T) { - // Create a test provider - opts := ConfidentialCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - ConfidentialIdentityProviderOptions: identity.ConfidentialIdentityProviderOptions{ - ClientID: "test-client-id", - CredentialsType: identity.ClientSecretCredentialType, - ClientSecret: "test-secret", - Scopes: []string{identity.RedisScopeDefault}, - Authority: identity.AuthorityConfiguration{}, - }, - } - t.Run("double subscribe and cancel resubscribe", func(t *testing.T) { - t.Parallel() - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(tokenExpiration), - time.Now(), - tokenExpiration.Milliseconds(), - ) - - listener := &mockCredentialsListener{ - LastTokenCh: make(chan string, 1), - LastErrCh: make(chan error, 1), - } - mtm := &mockTokenManager{done: make(chan struct{}), lock: &sync.Mutex{}} - // Set the token manager factory in the options - options := opts - options.tokenManagerFactory = mockTokenManagerFactory(mtm) - mtm.On("GetToken", false).Return(testToken, nil) - mtm.On("Start", mock.Anything). - Run(mockTokenManagerLoop(mtm, tokenExpiration, testToken, nil)). - Return(manager.StopFunc(mtm.stop), nil) - provider, err := NewConfidentialCredentialsProvider(options) - require.NoError(t, err) - require.NotNil(t, provider) - // Subscribe the listener - tk, cancel, err := provider.Subscribe(listener) - require.NoError(t, err) - require.NotNil(t, tk) - require.NotNil(t, cancel) - // try to subscribe the same listener again - tk2, cancel2, err := provider.Subscribe(listener) - require.NoError(t, err) - require.NotNil(t, tk2) - require.NotNil(t, cancel2) - // Verify the listener received the token once - select { - case tk := <-listener.LastTokenCh: - assert.Equal(t, rawTokenString, tk, "listener received wrong token") - case err := <-listener.LastErrCh: - t.Fatalf("listener received error: %v", err) - case <-time.After(3 * tokenExpiration): - t.Fatalf("listener timed out waiting for token") - } - // verify it is not received again - select { - case tk := <-listener.LastTokenCh: - t.Fatalf("listener received unexpected token: %v", tk) - case err := <-listener.LastErrCh: - t.Fatalf("listener received unexpected error: %v", err) - case <-time.After(tokenExpiration / 2): - // No message received, which is expected - } - - }) - - t.Run("concurrent subscribe and cancel with error ", func(t *testing.T) { - t.Parallel() - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(tokenExpiration), - time.Now(), - tokenExpiration.Milliseconds(), - ) - mtm := &mockTokenManager{done: make(chan struct{}), lock: &sync.Mutex{}} - // Set the token manager factory in the options - options := opts - options.tokenManagerFactory = mockTokenManagerFactory(mtm) - mtm.On("GetToken", false).Return(testToken, nil) - - mtm.On("Start", mock.Anything). - Run(mockTokenManagerLoop(mtm, tokenExpiration, nil, errTokenError)). - Return(manager.StopFunc(mtm.stop), nil) - provider, err := NewConfidentialCredentialsProvider(options) - require.NoError(t, err) - require.NotNil(t, provider) - var wg sync.WaitGroup - listeners := make([]*mockCredentialsListener, numListeners) - cancels := make([]auth.UnsubscribeFunc, numListeners) - - // Subscribe multiple listeners concurrently - for i := 0; i < numListeners; i++ { - wg.Add(1) - go func(idx int) { - defer wg.Done() - listener := &mockCredentialsListener{ - LastTokenCh: make(chan string, 1), - LastErrCh: make(chan error, 1), - } - listeners[idx] = listener - _, cancel, err := provider.Subscribe(listener) - require.NoError(t, err) - cancels[idx] = cancel - }(i) - } - wg.Wait() - - // Verify all listeners received the token - for i, listener := range listeners { - select { - case tk := <-listener.LastTokenCh: - t.Fatalf("listener %d received token: %v", i, tk) - case err := <-listener.LastErrCh: - assert.Equal(t, errTokenError.Error(), err.Error(), "listener %d received wrong error", i) - case <-time.After(3 * tokenExpiration): - t.Fatalf("listener %d timed out waiting for token", i) - } - } - - // Cancel all subscriptions concurrently - for i := 0; i < numListeners; i++ { - wg.Add(1) - go func(idx int) { - defer wg.Done() - err := cancels[idx]() - require.NoError(t, err) - }(i) - } - wg.Wait() - - // Verify no more tokens are sent after cancellation - for i, listener := range listeners { - select { - case tk := <-listener.LastTokenCh: - t.Fatalf("listener %d received unexpected token after cancellation: %s", i, tk) - case err := <-listener.LastErrCh: - t.Fatalf("listener %d received unexpected error after cancellation: %v", i, err) - case <-time.After(3 * tokenExpiration): - // No message received, which is expected - } - } - }) - - t.Run("concurrent subscribe and get token error ", func(t *testing.T) { - t.Parallel() - mtm := &mockTokenManager{done: make(chan struct{}), lock: &sync.Mutex{}} - // Set the token manager factory in the options - options := opts - options.tokenManagerFactory = mockTokenManagerFactory(mtm) - mtm.On("GetToken", false).Return(nil, assert.AnError) - - mtm.On("Start", mock.Anything). - Run(mockTokenManagerLoop(mtm, tokenExpiration, nil, errTokenError)). - Return(manager.StopFunc(mtm.stop), nil) - provider, err := NewConfidentialCredentialsProvider(options) - require.NoError(t, err) - require.NotNil(t, provider) - - var wg sync.WaitGroup - listeners := make([]*mockCredentialsListener, numListeners) - - // Subscribe multiple listeners concurrently - for i := 0; i < numListeners; i++ { - wg.Add(1) - go func(idx int) { - defer wg.Done() - listener := &mockCredentialsListener{ - LastTokenCh: make(chan string, 1), - LastErrCh: make(chan error, 1), - } - listeners[idx] = listener - tk, cancel, err := provider.Subscribe(listener) - require.Nil(t, tk) - require.Error(t, err) - require.Nil(t, cancel) - }(i) - } - wg.Wait() - - // Verify no more tokens are sent after cancellation - for i, listener := range listeners { - select { - case tk := <-listener.LastTokenCh: - t.Fatalf("listener %d received unexpected token after cancellation: %s", i, tk) - case err := <-listener.LastErrCh: - t.Fatalf("listener %d received unexpected error after cancellation: %v", i, err) - case <-time.After(3 * tokenExpiration): - // No message received, which is expected - } - } - }) - - t.Run("concurrent subscribe and cancel", func(t *testing.T) { - t.Parallel() - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(tokenExpiration), - time.Now(), - tokenExpiration.Milliseconds(), - ) - // Set the token manager factory in the options - options := opts - options.tokenManagerFactory = testFakeTokenManagerFactory(testToken, nil) - - provider, err := NewConfidentialCredentialsProvider(options) - require.NoError(t, err) - require.NotNil(t, provider) - var wg sync.WaitGroup - listeners := make([]*mockCredentialsListener, numListeners) - cancels := make([]auth.UnsubscribeFunc, numListeners) - - // Subscribe multiple listeners concurrently - for i := 0; i < numListeners; i++ { - wg.Add(1) - go func(idx int) { - defer wg.Done() - listener := &mockCredentialsListener{ - LastTokenCh: make(chan string, 1), - LastErrCh: make(chan error, 1), - } - listeners[idx] = listener - _, cancel, err := provider.Subscribe(listener) - require.NoError(t, err) - cancels[idx] = cancel - }(i) - } - wg.Wait() - - // Verify all listeners received the token - for i, listener := range listeners { - select { - case tk := <-listener.LastTokenCh: - assert.Equal(t, rawTokenString, tk, "listener %d received wrong token", i) - case err := <-listener.LastErrCh: - t.Fatalf("listener %d received error: %v", i, err) - case <-time.After(3 * tokenExpiration): - t.Fatalf("listener %d timed out waiting for token", i) - } - } - - // Cancel all subscriptions concurrently - for i := 0; i < numListeners; i++ { - wg.Add(1) - go func(idx int) { - defer wg.Done() - err := cancels[idx]() - require.NoError(t, err) - }(i) - } - wg.Wait() - - // Verify no more tokens are sent after cancellation - for i, listener := range listeners { - select { - case tk := <-listener.LastTokenCh: - t.Fatalf("listener %d received unexpected token after cancellation: %s", i, tk) - case err := <-listener.LastErrCh: - t.Fatalf("listener %d received unexpected error after cancellation: %v", i, err) - case <-time.After(3 * tokenExpiration): - // No message received, which is expected - } - } - }) -} - -// TestCredentialsProviderDeadlockScenario tests the deadlock scenario described in the bug report. -// -// Bug Description: -// A deadlock occurs in StreamingCredentialsProvider when listener callbacks (OnNext/OnError) -// are invoked while holding RLock. If re-auth fails, go-redis may close the connection and -// trigger the provider's unsubscribe, which then tries to acquire Lock on the same RWMutex. -// Since RWMutex doesn't allow upgrading a read lock to a write lock, this leads to a deadlock. -// -// Reproduction Steps: -// 1. Provider receives a new token and calls onTokenNext -// 2. onTokenNext acquires RLock and invokes listener.OnNext(t) -// 3. ReAuthCredentialsListener.OnNext calls re-auth; on error it triggers onAuthenticationErr -// 4. onAuthenticationErr closes the connection (e.g. bad conn) -// 5. Conn.Close() triggers the provider's unsubscribe -// 6. unsubscribe tries to acquire Lock, while RLock is still held -// 7. Deadlock occurs -// -// Expected Behavior: -// - These tests should FAIL when the deadlock bug is present (current state) -// - These tests should PASS when the deadlock bug is fixed -// -// This test reproduces the deadlock by creating a listener that calls unsubscribe -// during the OnNext callback, simulating the real-world scenario. -func TestCredentialsProviderDeadlockScenario(t *testing.T) { - t.Run("deadlock on unsubscribe during OnNext", func(t *testing.T) { - // Create a test token - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - // Create credentials provider with mock token manager - tm := &fakeTokenManager{ - token: testToken, - } - - cp, err := NewCredentialsProvider(tm, CredentialsProviderOptions{}) - require.NoError(t, err) - require.NotNil(t, cp) - - // Create a deadlock-inducing listener that calls unsubscribe during OnNext - deadlockListener := &deadlockInducingListener{ - provider: cp.(*entraidCredentialsProvider), - unsubscribe: nil, // Will be set after subscription - } - - // Subscribe the deadlock listener - credentials, cancel, err := cp.Subscribe(deadlockListener) - require.NoError(t, err) - require.NotNil(t, credentials) - require.NotNil(t, cancel) - - // Set the unsubscribe function in the listener - deadlockListener.unsubscribe = cancel - - // Use a timeout to detect deadlock - done := make(chan bool, 1) - timeout := time.After(5 * time.Second) - - go func() { - // Trigger token update which should cause deadlock - cp.(*entraidCredentialsProvider).onTokenNext(testToken) - done <- true - }() - - select { - case <-done: - // Test passes - no deadlock occurred (this means the bug is fixed) - t.Log("No deadlock detected - operation completed successfully") - case <-timeout: - // Test fails - deadlock occurred (this means the bug is present) - t.Fatal("Deadlock detected: operation timed out due to RWMutex deadlock in onTokenNext") - } - }) - - t.Run("concurrent token update and unsubscribe stress test", func(t *testing.T) { - // This test verifies that concurrent token updates and unsubscribes - // can cause deadlocks under stress conditions - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - tm := &fakeTokenManager{ - token: testToken, - } - - cp, err := NewCredentialsProvider(tm, CredentialsProviderOptions{}) - require.NoError(t, err) - require.NotNil(t, cp) - - provider := cp.(*entraidCredentialsProvider) - - // Create multiple listeners that will trigger unsubscribe during OnNext - numListeners := 10 - listeners := make([]*deadlockInducingListener, numListeners) - cancels := make([]auth.UnsubscribeFunc, numListeners) - - // Subscribe all listeners - for i := 0; i < numListeners; i++ { - listener := &deadlockInducingListener{ - provider: provider, - unsubscribe: nil, - } - listeners[i] = listener - - _, cancel, err := cp.Subscribe(listener) - require.NoError(t, err) - cancels[i] = cancel - listener.unsubscribe = cancel - } - - // Use a timeout to detect deadlock - done := make(chan bool, 1) - timeout := time.After(10 * time.Second) - - go func() { - // Trigger multiple concurrent token updates - var wg sync.WaitGroup - for i := 0; i < 5; i++ { - wg.Add(1) - go func() { - defer wg.Done() - provider.onTokenNext(testToken) - }() - } - wg.Wait() - done <- true - }() - - select { - case <-done: - // Test passes - no deadlock occurred (this means the bug is fixed) - t.Log("No deadlock detected in stress test - operation completed successfully") - case <-timeout: - // Test fails - deadlock occurred (this means the bug is present) - t.Fatal("Deadlock detected in stress test: operation timed out due to RWMutex deadlock") - } - }) -} - -// deadlockInducingListener is a mock listener that simulates the deadlock scenario -// by calling unsubscribe during OnNext, which mimics what happens when -// ReAuthCredentialsListener fails re-auth and closes the connection -type deadlockInducingListener struct { - provider *entraidCredentialsProvider - unsubscribe auth.UnsubscribeFunc -} - -func (d *deadlockInducingListener) OnNext(credentials auth.Credentials) { - // Simulate the scenario where re-auth fails and connection is closed - // This triggers unsubscribe while we're still in the OnNext callback - // which is called while holding RLock - if d.unsubscribe != nil { - // This call will try to acquire Lock while RLock is held, causing deadlock - // We call it directly (not in a goroutine) to reproduce the actual deadlock - _ = d.unsubscribe() - } -} - -func (d *deadlockInducingListener) OnError(err error) { - // Simulate the scenario where error handling also triggers unsubscribe - // This can also cause deadlock if called while holding RLock - if d.unsubscribe != nil { - _ = d.unsubscribe() - } -} - -// nonBlockingListener is a test listener that doesn't block on channels -type nonBlockingListener struct { - tokenCount int32 -} - -func (n *nonBlockingListener) OnNext(credentials auth.Credentials) { - atomic.AddInt32(&n.tokenCount, 1) -} - -func (n *nonBlockingListener) OnError(err error) { - // No-op for this test -} - -// TestCredentialsProviderDeadlockOnError tests deadlock scenario during error handling -func TestCredentialsProviderDeadlockOnError(t *testing.T) { - t.Run("deadlock on unsubscribe during OnError", func(t *testing.T) { - // Create a test token - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - // Create credentials provider with mock token manager - tm := &fakeTokenManager{ - token: testToken, - } - - cp, err := NewCredentialsProvider(tm, CredentialsProviderOptions{}) - require.NoError(t, err) - require.NotNil(t, cp) - - // Create a deadlock-inducing listener that calls unsubscribe during OnError - deadlockListener := &deadlockInducingListener{ - provider: cp.(*entraidCredentialsProvider), - unsubscribe: nil, // Will be set after subscription - } - - // Subscribe the deadlock listener - credentials, cancel, err := cp.Subscribe(deadlockListener) - require.NoError(t, err) - require.NotNil(t, credentials) - require.NotNil(t, cancel) - - // Set the unsubscribe function in the listener - deadlockListener.unsubscribe = cancel - - // Use a timeout to detect deadlock - done := make(chan bool, 1) - timeout := time.After(5 * time.Second) - - go func() { - // Trigger error which should cause deadlock - testError := errors.New("test authentication error") - cp.(*entraidCredentialsProvider).onTokenError(testError) - done <- true - }() - - select { - case <-done: - // Test passes - no deadlock occurred (this means the bug is fixed) - t.Log("No deadlock detected during error handling - operation completed successfully") - case <-timeout: - // Test fails - deadlock occurred (this means the bug is present) - t.Fatal("Deadlock detected during error handling: operation timed out due to RWMutex deadlock in onTokenError") - } - }) -} - -// TestCredentialsProviderRaceCondition tests for race conditions in concurrent scenarios -func TestCredentialsProviderRaceCondition(t *testing.T) { - t.Run("race condition between subscribe and token update", func(t *testing.T) { - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - tm := &fakeTokenManager{ - token: testToken, - } - - cp, err := NewCredentialsProvider(tm, CredentialsProviderOptions{}) - require.NoError(t, err) - require.NotNil(t, cp) - - provider := cp.(*entraidCredentialsProvider) - - // Run with race detector enabled - var wg sync.WaitGroup - numGoroutines := 5 // Reduced to avoid channel blocking - - listeners := make([]*nonBlockingListener, numGoroutines) - cancels := make([]auth.UnsubscribeFunc, numGoroutines) - - // Subscribe listeners first - for i := 0; i < numGoroutines; i++ { - listener := &nonBlockingListener{} - listeners[i] = listener - _, cancel, err := cp.Subscribe(listener) - require.NoError(t, err) - cancels[i] = cancel - } - - // Concurrent token updates - for i := 0; i < numGoroutines; i++ { - wg.Add(1) - go func() { - defer wg.Done() - provider.onTokenNext(testToken) - }() - } - - // Concurrent unsubscribes - for i := 0; i < numGoroutines; i++ { - wg.Add(1) - go func(idx int) { - defer wg.Done() - time.Sleep(time.Millisecond) // Small delay to allow some token updates - _ = cancels[idx]() - }(i) - } - - // Wait for all goroutines to complete - wg.Wait() - }) -} - -// TestCredentialsProviderDeadlockFix demonstrates the expected behavior after the deadlock is fixed. -// This test shows how the provider should handle unsubscribe calls during listener callbacks -// without causing deadlocks. -func TestCredentialsProviderDeadlockFix(t *testing.T) { - // Note: The deadlock bug has been fixed! The fix involves: - // 1. Copying the listeners slice while holding RLock - // 2. Releasing RLock before calling listener callbacks - // 3. This allows unsubscribe operations to acquire Lock without deadlock - - t.Run("no deadlock after fix - unsubscribe during OnNext", func(t *testing.T) { - // This test would pass after implementing the fix - // The fix should involve: - // 1. Not holding RLock while calling listener callbacks, OR - // 2. Using a different synchronization mechanism that allows safe unsubscribe during callbacks, OR - // 3. Deferring unsubscribe operations to avoid the deadlock - - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - tm := &fakeTokenManager{ - token: testToken, - } - - cp, err := NewCredentialsProvider(tm, CredentialsProviderOptions{}) - require.NoError(t, err) - require.NotNil(t, cp) - - // Create a listener that calls unsubscribe during OnNext - deadlockListener := &deadlockInducingListener{ - provider: cp.(*entraidCredentialsProvider), - unsubscribe: nil, - } - - credentials, cancel, err := cp.Subscribe(deadlockListener) - require.NoError(t, err) - require.NotNil(t, credentials) - require.NotNil(t, cancel) - - deadlockListener.unsubscribe = cancel - - // After the fix, this should complete without deadlock - done := make(chan bool, 1) - timeout := time.After(2 * time.Second) - - go func() { - cp.(*entraidCredentialsProvider).onTokenNext(testToken) - done <- true - }() - - select { - case <-done: - // Test passes - no deadlock occurred - t.Log("Success: No deadlock detected after fix") - case <-timeout: - t.Fatal("Deadlock still present - fix not working correctly") - } - }) -} - -// TestCredentialsProviderEdgeCases tests additional edge cases related to the deadlock bug -func TestCredentialsProviderEdgeCases(t *testing.T) { - t.Run("multiple listeners with mixed unsubscribe behavior", func(t *testing.T) { - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - tm := &fakeTokenManager{ - token: testToken, - } - - cp, err := NewCredentialsProvider(tm, CredentialsProviderOptions{}) - require.NoError(t, err) - require.NotNil(t, cp) - - // Create a mix of normal listeners and deadlock-inducing listeners - normalListener := &mockCredentialsListener{ - LastTokenCh: make(chan string, 1), - LastErrCh: make(chan error, 1), - } - - deadlockListener := &deadlockInducingListener{ - provider: cp.(*entraidCredentialsProvider), - unsubscribe: nil, - } - - // Subscribe both listeners - _, cancel1, err := cp.Subscribe(normalListener) - require.NoError(t, err) - defer cancel1() - - _, cancel2, err := cp.Subscribe(deadlockListener) - require.NoError(t, err) - deadlockListener.unsubscribe = cancel2 - - // This should cause deadlock due to the deadlock-inducing listener - done := make(chan bool, 1) - timeout := time.After(3 * time.Second) - - go func() { - cp.(*entraidCredentialsProvider).onTokenNext(testToken) - done <- true - }() - - select { - case <-done: - t.Log("No deadlock detected - this indicates the bug might be fixed") - case <-timeout: - t.Fatal("Deadlock detected with mixed listener types") - } - }) - - t.Run("rapid subscribe and unsubscribe operations", func(t *testing.T) { - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - tm := &fakeTokenManager{ - token: testToken, - } - - cp, err := NewCredentialsProvider(tm, CredentialsProviderOptions{}) - require.NoError(t, err) - require.NotNil(t, cp) - - // Rapidly subscribe and unsubscribe while triggering token updates - var wg sync.WaitGroup - for i := 0; i < 5; i++ { - wg.Add(1) - go func() { - defer wg.Done() - for j := 0; j < 10; j++ { - listener := &mockCredentialsListener{ - LastTokenCh: make(chan string, 1), - LastErrCh: make(chan error, 1), - } - _, cancel, err := cp.Subscribe(listener) - if err == nil && cancel != nil { - _ = cancel() - } - } - }() - } - - // Concurrent token updates - wg.Add(1) - go func() { - defer wg.Done() - for i := 0; i < 20; i++ { - cp.(*entraidCredentialsProvider).onTokenNext(testToken) - time.Sleep(time.Millisecond) - } - }() - - // Wait for completion with timeout - done := make(chan bool, 1) - go func() { - wg.Wait() - done <- true - }() - - select { - case <-done: - t.Log("Rapid subscribe/unsubscribe test completed successfully") - case <-time.After(10 * time.Second): - t.Fatal("Rapid subscribe/unsubscribe test timed out - possible deadlock") - } - }) -} diff --git a/dev/bench/data.js b/dev/bench/data.js new file mode 100644 index 0000000..2034315 --- /dev/null +++ b/dev/bench/data.js @@ -0,0 +1,77504 @@ +window.BENCHMARK_DATA = { + "lastUpdate": 1760698803894, + "repoUrl": "https://github.com/redis/go-redis-entraid", + "entries": { + "Go Benchmark": [ + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "818339b328bc1eee297e533f3c0aa01157ffbc0d", + "message": "Introduce entraid straming credentials providers for `go-redis`", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/818339b328bc1eee297e533f3c0aa01157ffbc0d" + }, + "date": 1744397497195, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3138, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3138, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6235, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6235, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6268, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6268, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.24, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36874294 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.24, + "unit": "ns/op", + "extra": "36874294 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36874294 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36874294 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.53, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35922519 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.53, + "unit": "ns/op", + "extra": "35922519 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35922519 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35922519 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321170164 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "321170164 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321170164 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321170164 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321273489 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "321273489 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321273489 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321273489 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 7.039, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174627003 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 7.039, + "unit": "ns/op", + "extra": "174627003 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174627003 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174627003 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.868, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174535862 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.868, + "unit": "ns/op", + "extra": "174535862 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174535862 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174535862 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.747, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137252055 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.747, + "unit": "ns/op", + "extra": "137252055 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137252055 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137252055 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.734, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137462715 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.734, + "unit": "ns/op", + "extra": "137462715 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137462715 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137462715 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.48, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17347252 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.48, + "unit": "ns/op", + "extra": "17347252 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17347252 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17347252 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.02, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17326084 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.02, + "unit": "ns/op", + "extra": "17326084 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17326084 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17326084 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.985, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170702616 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.985, + "unit": "ns/op", + "extra": "170702616 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170702616 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170702616 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.973, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171907695 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.973, + "unit": "ns/op", + "extra": "171907695 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171907695 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171907695 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.262, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192302277 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.262, + "unit": "ns/op", + "extra": "192302277 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "192302277 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192302277 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.262, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "191943309 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.262, + "unit": "ns/op", + "extra": "191943309 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "191943309 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "191943309 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.38, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17389400 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.38, + "unit": "ns/op", + "extra": "17389400 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17389400 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17389400 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17364367 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.52, + "unit": "ns/op", + "extra": "17364367 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17364367 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17364367 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320948512 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "320948512 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "320948512 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320948512 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.738, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320940024 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.738, + "unit": "ns/op", + "extra": "320940024 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "320940024 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320940024 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.867, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "643498351 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.867, + "unit": "ns/op", + "extra": "643498351 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "643498351 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "643498351 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.866, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "641631104 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.866, + "unit": "ns/op", + "extra": "641631104 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "641631104 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "641631104 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.219, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192766374 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.219, + "unit": "ns/op", + "extra": "192766374 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "192766374 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192766374 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.219, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "189783588 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.219, + "unit": "ns/op", + "extra": "189783588 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "189783588 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "189783588 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "26139769f15486fc2db59a7c7b8e706aea4cb6a7", + "message": "Introduce entraid straming credentials providers for `go-redis`", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/26139769f15486fc2db59a7c7b8e706aea4cb6a7" + }, + "date": 1744398976629, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3238, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3238, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6222, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6222, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3685, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3685, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.24, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37080696 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.24, + "unit": "ns/op", + "extra": "37080696 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37080696 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37080696 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.05, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36915836 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.05, + "unit": "ns/op", + "extra": "36915836 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36915836 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36915836 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321017954 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "321017954 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321017954 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321017954 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.732, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321056816 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.732, + "unit": "ns/op", + "extra": "321056816 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321056816 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321056816 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.851, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174663194 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.851, + "unit": "ns/op", + "extra": "174663194 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174663194 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174663194 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 7.058, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175330794 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 7.058, + "unit": "ns/op", + "extra": "175330794 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175330794 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175330794 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.71, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137022013 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.71, + "unit": "ns/op", + "extra": "137022013 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137022013 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137022013 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.706, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137508632 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.706, + "unit": "ns/op", + "extra": "137508632 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137508632 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137508632 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.53, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17262126 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.53, + "unit": "ns/op", + "extra": "17262126 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17262126 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17262126 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.95, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17411665 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.95, + "unit": "ns/op", + "extra": "17411665 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17411665 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17411665 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.972, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171852618 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.972, + "unit": "ns/op", + "extra": "171852618 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171852618 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171852618 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.989, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172292148 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.989, + "unit": "ns/op", + "extra": "172292148 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "172292148 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172292148 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.259, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "191307831 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.259, + "unit": "ns/op", + "extra": "191307831 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "191307831 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "191307831 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.248, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192112344 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.248, + "unit": "ns/op", + "extra": "192112344 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "192112344 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192112344 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.82, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17327294 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.82, + "unit": "ns/op", + "extra": "17327294 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17327294 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17327294 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.23, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16920628 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.23, + "unit": "ns/op", + "extra": "16920628 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "16920628 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16920628 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3135, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3135, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.743, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321193525 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.743, + "unit": "ns/op", + "extra": "321193525 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "321193525 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321193525 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321405808 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "321405808 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "321405808 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321405808 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.867, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "642803617 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.867, + "unit": "ns/op", + "extra": "642803617 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "642803617 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "642803617 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.867, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "643292158 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.867, + "unit": "ns/op", + "extra": "643292158 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "643292158 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "643292158 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.237, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192530290 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.237, + "unit": "ns/op", + "extra": "192530290 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "192530290 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192530290 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.239, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192664946 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.239, + "unit": "ns/op", + "extra": "192664946 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "192664946 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192664946 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "d3fe73c9dfa3c9a69492c112fe7919c066e7965c", + "message": "Introduce entraid straming credentials providers for `go-redis`", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/d3fe73c9dfa3c9a69492c112fe7919c066e7965c" + }, + "date": 1744436561550, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3282, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3282, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6227, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6227, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6234, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6234, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.315, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.315, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3191, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3191, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3109, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3109, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.22, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "38041714 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.22, + "unit": "ns/op", + "extra": "38041714 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "38041714 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "38041714 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.13, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35083257 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.13, + "unit": "ns/op", + "extra": "35083257 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35083257 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35083257 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.733, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "294904300 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.733, + "unit": "ns/op", + "extra": "294904300 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "294904300 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "294904300 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321200128 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "321200128 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321200128 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321200128 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.845, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172814187 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.845, + "unit": "ns/op", + "extra": "172814187 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "172814187 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172814187 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.848, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175139776 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.848, + "unit": "ns/op", + "extra": "175139776 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175139776 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175139776 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.708, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137650064 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.708, + "unit": "ns/op", + "extra": "137650064 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137650064 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137650064 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.713, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137679310 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.713, + "unit": "ns/op", + "extra": "137679310 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137679310 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137679310 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.55, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17277057 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.55, + "unit": "ns/op", + "extra": "17277057 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17277057 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17277057 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.23, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17358069 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.23, + "unit": "ns/op", + "extra": "17358069 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17358069 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17358069 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.027, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170915896 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.027, + "unit": "ns/op", + "extra": "170915896 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170915896 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170915896 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.992, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172112538 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.992, + "unit": "ns/op", + "extra": "172112538 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "172112538 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172112538 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.254, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "184798776 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.254, + "unit": "ns/op", + "extra": "184798776 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "184798776 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "184798776 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.259, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192276645 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.259, + "unit": "ns/op", + "extra": "192276645 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "192276645 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192276645 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.59, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17355694 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.59, + "unit": "ns/op", + "extra": "17355694 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17355694 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17355694 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 70.13, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17063515 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 70.13, + "unit": "ns/op", + "extra": "17063515 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17063515 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17063515 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3151, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3151, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.739, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321404701 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.739, + "unit": "ns/op", + "extra": "321404701 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "321404701 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321404701 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.749, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "316810792 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.749, + "unit": "ns/op", + "extra": "316810792 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "316810792 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "316810792 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.865, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "642080766 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.865, + "unit": "ns/op", + "extra": "642080766 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "642080766 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "642080766 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.869, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "629681838 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.869, + "unit": "ns/op", + "extra": "629681838 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "629681838 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "629681838 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.226, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192906051 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.226, + "unit": "ns/op", + "extra": "192906051 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "192906051 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192906051 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.23, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192385464 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.23, + "unit": "ns/op", + "extra": "192385464 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "192385464 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192385464 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "880fd99f2475e9226c3a9aeb57c700bea5ffb778", + "message": "Introduce entraid straming credentials providers for `go-redis`", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/880fd99f2475e9226c3a9aeb57c700bea5ffb778" + }, + "date": 1744436736006, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3176, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3176, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6237, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6237, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6234, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6234, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3199, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3199, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3138, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3138, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.21, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37113325 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.21, + "unit": "ns/op", + "extra": "37113325 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37113325 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37113325 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.11, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35703884 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.11, + "unit": "ns/op", + "extra": "35703884 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35703884 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35703884 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320231325 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "320231325 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320231325 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320231325 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.789, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320886356 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.789, + "unit": "ns/op", + "extra": "320886356 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320886356 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320886356 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.851, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174564169 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.851, + "unit": "ns/op", + "extra": "174564169 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174564169 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174564169 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.847, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175229478 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.847, + "unit": "ns/op", + "extra": "175229478 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175229478 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175229478 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.723, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137664602 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.723, + "unit": "ns/op", + "extra": "137664602 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137664602 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137664602 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.713, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137598909 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.713, + "unit": "ns/op", + "extra": "137598909 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137598909 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137598909 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.65, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17332651 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.65, + "unit": "ns/op", + "extra": "17332651 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17332651 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17332651 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.92, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17395857 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.92, + "unit": "ns/op", + "extra": "17395857 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17395857 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17395857 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.989, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171390240 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.989, + "unit": "ns/op", + "extra": "171390240 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171390240 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171390240 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172068663 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7, + "unit": "ns/op", + "extra": "172068663 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "172068663 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172068663 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.259, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192186644 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.259, + "unit": "ns/op", + "extra": "192186644 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "192186644 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192186644 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.252, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192251083 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.252, + "unit": "ns/op", + "extra": "192251083 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "192251083 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192251083 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.96, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17417758 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.96, + "unit": "ns/op", + "extra": "17417758 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17417758 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17417758 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 70.07, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17388681 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 70.07, + "unit": "ns/op", + "extra": "17388681 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17388681 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17388681 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3157, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3157, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3157, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3157, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320860502 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "320860502 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "320860502 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320860502 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.804, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "318959492 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.804, + "unit": "ns/op", + "extra": "318959492 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "318959492 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "318959492 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.867, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "643470019 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.867, + "unit": "ns/op", + "extra": "643470019 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "643470019 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "643470019 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.867, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "643351551 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.867, + "unit": "ns/op", + "extra": "643351551 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "643351551 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "643351551 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.294, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192861794 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.294, + "unit": "ns/op", + "extra": "192861794 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "192861794 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192861794 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.221, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "191711966 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.221, + "unit": "ns/op", + "extra": "191711966 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "191711966 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "191711966 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "1c729b7a9e55bad8fc8e02670703906ddf6ef12f", + "message": "Introduce entraid straming credentials providers for `go-redis`", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/1c729b7a9e55bad8fc8e02670703906ddf6ef12f" + }, + "date": 1744437106291, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6269, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6269, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6242, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6242, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.29, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37159921 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.29, + "unit": "ns/op", + "extra": "37159921 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37159921 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37159921 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.06, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36038581 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.06, + "unit": "ns/op", + "extra": "36038581 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36038581 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36038581 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.804, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321354704 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.804, + "unit": "ns/op", + "extra": "321354704 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321354704 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321354704 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320611440 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "320611440 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320611440 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320611440 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.859, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174934440 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.859, + "unit": "ns/op", + "extra": "174934440 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174934440 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174934440 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.85, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174958442 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.85, + "unit": "ns/op", + "extra": "174958442 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174958442 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174958442 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.707, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137687708 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.707, + "unit": "ns/op", + "extra": "137687708 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137687708 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137687708 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.721, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137766312 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.721, + "unit": "ns/op", + "extra": "137766312 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137766312 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137766312 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.34, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17288902 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.34, + "unit": "ns/op", + "extra": "17288902 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17288902 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17288902 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.04, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "15062798 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.04, + "unit": "ns/op", + "extra": "15062798 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "15062798 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "15062798 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.975, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172064845 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.975, + "unit": "ns/op", + "extra": "172064845 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "172064845 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172064845 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.985, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172142744 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.985, + "unit": "ns/op", + "extra": "172142744 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "172142744 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172142744 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.248, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192236492 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.248, + "unit": "ns/op", + "extra": "192236492 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "192236492 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192236492 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.901, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "191856658 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.901, + "unit": "ns/op", + "extra": "191856658 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "191856658 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "191856658 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.25, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17322200 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.25, + "unit": "ns/op", + "extra": "17322200 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17322200 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17322200 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.87, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17418318 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.87, + "unit": "ns/op", + "extra": "17418318 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17418318 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17418318 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3149, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3149, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321026156 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "321026156 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "321026156 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321026156 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.769, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321317443 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.769, + "unit": "ns/op", + "extra": "321317443 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "321317443 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321317443 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.886, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "639602719 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.886, + "unit": "ns/op", + "extra": "639602719 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "639602719 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "639602719 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.871, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "643278559 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.871, + "unit": "ns/op", + "extra": "643278559 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "643278559 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "643278559 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.227, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "190831986 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.227, + "unit": "ns/op", + "extra": "190831986 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "190831986 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "190831986 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.227, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192647018 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.227, + "unit": "ns/op", + "extra": "192647018 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "192647018 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192647018 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "79af870cf98d6ded055eb4bc28d15e8776f770d0", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/79af870cf98d6ded055eb4bc28d15e8776f770d0" + }, + "date": 1744439028163, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3208, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3208, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.623, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.623, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6269, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6269, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.36, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37312474 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.36, + "unit": "ns/op", + "extra": "37312474 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37312474 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37312474 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.81, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35932471 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.81, + "unit": "ns/op", + "extra": "35932471 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35932471 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35932471 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.734, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321350205 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.734, + "unit": "ns/op", + "extra": "321350205 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321350205 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321350205 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.742, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321232374 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.742, + "unit": "ns/op", + "extra": "321232374 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321232374 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321232374 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 7.016, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175207112 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 7.016, + "unit": "ns/op", + "extra": "175207112 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175207112 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175207112 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.887, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174103634 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.887, + "unit": "ns/op", + "extra": "174103634 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174103634 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174103634 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.715, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137328075 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.715, + "unit": "ns/op", + "extra": "137328075 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137328075 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137328075 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.847, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137422380 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.847, + "unit": "ns/op", + "extra": "137422380 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137422380 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137422380 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.99, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17324751 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.99, + "unit": "ns/op", + "extra": "17324751 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17324751 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17324751 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.37, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "15547480 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.37, + "unit": "ns/op", + "extra": "15547480 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "15547480 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "15547480 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.974, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171730488 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.974, + "unit": "ns/op", + "extra": "171730488 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171730488 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171730488 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.97, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172098108 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.97, + "unit": "ns/op", + "extra": "172098108 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "172098108 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172098108 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.244, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174809900 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.244, + "unit": "ns/op", + "extra": "174809900 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "174809900 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174809900 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.261, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174563892 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.261, + "unit": "ns/op", + "extra": "174563892 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "174563892 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174563892 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.32, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17341188 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.32, + "unit": "ns/op", + "extra": "17341188 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17341188 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17341188 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.72, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17434794 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.72, + "unit": "ns/op", + "extra": "17434794 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17434794 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17434794 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3166, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3166, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321363516 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "321363516 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "321363516 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321363516 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.747, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "319893100 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.747, + "unit": "ns/op", + "extra": "319893100 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "319893100 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "319893100 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.871, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "639920499 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.871, + "unit": "ns/op", + "extra": "639920499 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "639920499 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "639920499 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.868, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "641465599 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.868, + "unit": "ns/op", + "extra": "641465599 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "641465599 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "641465599 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.221, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192983150 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.221, + "unit": "ns/op", + "extra": "192983150 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "192983150 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192983150 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.223, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "191818306 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.223, + "unit": "ns/op", + "extra": "191818306 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "191818306 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "191818306 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "e0d0879376beac54a3dcb5b73e9d59f84723088d", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/e0d0879376beac54a3dcb5b73e9d59f84723088d" + }, + "date": 1744440490150, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3101, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3101, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3104, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3104, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6531, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6531, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6191, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6191, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3102, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3102, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3062, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3062, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3088, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3088, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3068, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3068, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 31.79, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37263267 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 31.79, + "unit": "ns/op", + "extra": "37263267 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37263267 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37263267 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.27, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37410634 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.27, + "unit": "ns/op", + "extra": "37410634 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37410634 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37410634 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.82, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "327797770 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.82, + "unit": "ns/op", + "extra": "327797770 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "327797770 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "327797770 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.69, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "306617200 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.69, + "unit": "ns/op", + "extra": "306617200 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "306617200 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "306617200 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.768, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175762116 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.768, + "unit": "ns/op", + "extra": "175762116 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175762116 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175762116 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.789, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "177995115 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.789, + "unit": "ns/op", + "extra": "177995115 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "177995115 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "177995115 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.587, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "141105914 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.587, + "unit": "ns/op", + "extra": "141105914 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "141105914 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "141105914 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.664, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "138222985 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.664, + "unit": "ns/op", + "extra": "138222985 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "138222985 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "138222985 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.38, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17579396 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.38, + "unit": "ns/op", + "extra": "17579396 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17579396 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17579396 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 67.68, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17311662 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 67.68, + "unit": "ns/op", + "extra": "17311662 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17311662 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17311662 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.889, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "176208524 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.889, + "unit": "ns/op", + "extra": "176208524 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "176208524 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "176208524 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.886, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "173745081 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.886, + "unit": "ns/op", + "extra": "173745081 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "173745081 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "173745081 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.219, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192726864 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.219, + "unit": "ns/op", + "extra": "192726864 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "192726864 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192726864 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.176, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "196418103 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.176, + "unit": "ns/op", + "extra": "196418103 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "196418103 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "196418103 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 68.53, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17537778 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 68.53, + "unit": "ns/op", + "extra": "17537778 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17537778 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17537778 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.75, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16957846 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.75, + "unit": "ns/op", + "extra": "16957846 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "16957846 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16957846 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3067, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3067, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3037, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3037, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3029, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3029, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3058, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3058, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3074, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3074, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3109, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3109, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3079, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3079, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.709, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "322338325 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.709, + "unit": "ns/op", + "extra": "322338325 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "322338325 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "322338325 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.684, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321663838 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.684, + "unit": "ns/op", + "extra": "321663838 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "321663838 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321663838 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.823, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "674279343 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.823, + "unit": "ns/op", + "extra": "674279343 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "674279343 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "674279343 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.853, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "651862255 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.853, + "unit": "ns/op", + "extra": "651862255 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "651862255 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "651862255 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "193490233 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.126, + "unit": "ns/op", + "extra": "193490233 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "193490233 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "193490233 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.182, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "193521405 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.182, + "unit": "ns/op", + "extra": "193521405 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "193521405 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "193521405 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "305fcaf8d4cc5b99797db3c561ca53a0573a8a3b", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/305fcaf8d4cc5b99797db3c561ca53a0573a8a3b" + }, + "date": 1744440995940, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.318, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.318, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6234, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6234, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6298, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6298, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3359, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3359, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.313, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.313, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.37, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37199007 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.37, + "unit": "ns/op", + "extra": "37199007 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37199007 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37199007 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.53, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35387236 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.53, + "unit": "ns/op", + "extra": "35387236 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35387236 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35387236 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.741, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321298797 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.741, + "unit": "ns/op", + "extra": "321298797 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321298797 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321298797 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321113866 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "321113866 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321113866 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321113866 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.85, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175283956 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.85, + "unit": "ns/op", + "extra": "175283956 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175283956 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175283956 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 7.075, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174702258 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 7.075, + "unit": "ns/op", + "extra": "174702258 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174702258 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174702258 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.714, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137643554 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.714, + "unit": "ns/op", + "extra": "137643554 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137643554 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137643554 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.714, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137494923 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.714, + "unit": "ns/op", + "extra": "137494923 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137494923 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137494923 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.313, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.313, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3109, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3109, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321184916 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "321184916 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "321184916 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321184916 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.731, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320908814 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.731, + "unit": "ns/op", + "extra": "320908814 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "320908814 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320908814 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.872, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "642530913 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.872, + "unit": "ns/op", + "extra": "642530913 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "642530913 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "642530913 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.868, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "641458436 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.868, + "unit": "ns/op", + "extra": "641458436 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "641458436 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "641458436 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.242, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192640808 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.242, + "unit": "ns/op", + "extra": "192640808 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "192640808 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192640808 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.224, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192321304 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.224, + "unit": "ns/op", + "extra": "192321304 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "192321304 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192321304 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "bf65058e32952af528b03aba191fcfc0735fdf9f", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/bf65058e32952af528b03aba191fcfc0735fdf9f" + }, + "date": 1744461334747, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3151, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3151, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.624, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.624, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.623, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.623, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3143, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3143, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.53, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36711814 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.53, + "unit": "ns/op", + "extra": "36711814 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36711814 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36711814 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.17, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36431896 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.17, + "unit": "ns/op", + "extra": "36431896 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36431896 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36431896 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.857, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "318416073 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.857, + "unit": "ns/op", + "extra": "318416073 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "318416073 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "318416073 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.753, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "297038712 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.753, + "unit": "ns/op", + "extra": "297038712 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "297038712 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "297038712 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.846, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175158262 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.846, + "unit": "ns/op", + "extra": "175158262 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175158262 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175158262 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.854, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174963697 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.854, + "unit": "ns/op", + "extra": "174963697 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174963697 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174963697 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 9.136, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "136973835 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 9.136, + "unit": "ns/op", + "extra": "136973835 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "136973835 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "136973835 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.72, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137719279 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.72, + "unit": "ns/op", + "extra": "137719279 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137719279 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137719279 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3342, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3342, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.733, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "317671920 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.733, + "unit": "ns/op", + "extra": "317671920 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "317671920 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "317671920 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.741, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "317953724 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.741, + "unit": "ns/op", + "extra": "317953724 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "317953724 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "317953724 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.876, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "642473752 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.876, + "unit": "ns/op", + "extra": "642473752 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "642473752 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "642473752 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.872, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "640527315 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.872, + "unit": "ns/op", + "extra": "640527315 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "640527315 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "640527315 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.259, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192591705 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.259, + "unit": "ns/op", + "extra": "192591705 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "192591705 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192591705 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.231, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192780963 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.231, + "unit": "ns/op", + "extra": "192780963 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "192780963 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192780963 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "43a27796924d22ea7acd8c7aa0bb88e96b6f1c4b", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/43a27796924d22ea7acd8c7aa0bb88e96b6f1c4b" + }, + "date": 1744642764330, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3277, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3277, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3138, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3138, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.627, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.627, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6288, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6288, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3177, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3177, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3131, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3131, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3451, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3451, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 34.34, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36755616 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 34.34, + "unit": "ns/op", + "extra": "36755616 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36755616 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36755616 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.76, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "34525609 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.76, + "unit": "ns/op", + "extra": "34525609 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "34525609 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "34525609 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.741, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320701448 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.741, + "unit": "ns/op", + "extra": "320701448 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320701448 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320701448 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.747, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321264567 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.747, + "unit": "ns/op", + "extra": "321264567 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321264567 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321264567 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.852, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175124780 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.852, + "unit": "ns/op", + "extra": "175124780 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175124780 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175124780 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.858, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175018635 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.858, + "unit": "ns/op", + "extra": "175018635 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175018635 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175018635 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.728, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137264373 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.728, + "unit": "ns/op", + "extra": "137264373 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137264373 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137264373 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.745, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137463435 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.745, + "unit": "ns/op", + "extra": "137463435 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137463435 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137463435 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.83, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17291008 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.83, + "unit": "ns/op", + "extra": "17291008 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17291008 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17291008 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.11, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17417420 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.11, + "unit": "ns/op", + "extra": "17417420 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17417420 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17417420 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.979, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172131472 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.979, + "unit": "ns/op", + "extra": "172131472 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "172131472 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172131472 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.983, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "167073697 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.983, + "unit": "ns/op", + "extra": "167073697 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "167073697 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "167073697 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.469, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "184971560 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.469, + "unit": "ns/op", + "extra": "184971560 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "184971560 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "184971560 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.488, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "184737096 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.488, + "unit": "ns/op", + "extra": "184737096 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "184737096 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "184737096 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 70.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16931499 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 70.5, + "unit": "ns/op", + "extra": "16931499 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "16931499 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16931499 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 70.31, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17001634 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 70.31, + "unit": "ns/op", + "extra": "17001634 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17001634 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17001634 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3141, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3141, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3132, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3132, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3169, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3169, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3132, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3132, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "318308086 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "318308086 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "318308086 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "318308086 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.765, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320991010 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.765, + "unit": "ns/op", + "extra": "320991010 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "320991010 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320991010 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.867, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "641448482 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.867, + "unit": "ns/op", + "extra": "641448482 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "641448482 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "641448482 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.868, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "642591249 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.868, + "unit": "ns/op", + "extra": "642591249 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "642591249 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "642591249 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.236, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192658090 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.236, + "unit": "ns/op", + "extra": "192658090 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "192658090 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192658090 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.228, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192809503 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.228, + "unit": "ns/op", + "extra": "192809503 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "192809503 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192809503 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "e05c56c5ece43b603b13ac80f2453da6b330cb2b", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/e05c56c5ece43b603b13ac80f2453da6b330cb2b" + }, + "date": 1744661210545, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3134, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3134, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3155, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3155, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6273, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6273, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6244, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6244, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3659, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3659, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3129, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3129, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.39, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37235415 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.39, + "unit": "ns/op", + "extra": "37235415 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37235415 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37235415 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.57, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35719022 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.57, + "unit": "ns/op", + "extra": "35719022 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35719022 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35719022 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.741, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "319795220 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.741, + "unit": "ns/op", + "extra": "319795220 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "319795220 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "319795220 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.741, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "319767645 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.741, + "unit": "ns/op", + "extra": "319767645 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "319767645 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "319767645 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.852, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175124251 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.852, + "unit": "ns/op", + "extra": "175124251 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175124251 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175124251 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 7.041, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174989196 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 7.041, + "unit": "ns/op", + "extra": "174989196 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174989196 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174989196 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "135619080 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.736, + "unit": "ns/op", + "extra": "135619080 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "135619080 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "135619080 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.722, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137681347 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.722, + "unit": "ns/op", + "extra": "137681347 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137681347 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137681347 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.69, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17145428 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.69, + "unit": "ns/op", + "extra": "17145428 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17145428 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17145428 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.94, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17374402 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.94, + "unit": "ns/op", + "extra": "17374402 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17374402 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17374402 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.974, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171908371 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.974, + "unit": "ns/op", + "extra": "171908371 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171908371 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171908371 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.068, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171287815 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.068, + "unit": "ns/op", + "extra": "171287815 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171287815 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171287815 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.485, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "185314788 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.485, + "unit": "ns/op", + "extra": "185314788 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "185314788 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "185314788 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.489, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "185650803 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.489, + "unit": "ns/op", + "extra": "185650803 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "185650803 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "185650803 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.56, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16942329 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.56, + "unit": "ns/op", + "extra": "16942329 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "16942329 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16942329 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 70.39, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16226557 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 70.39, + "unit": "ns/op", + "extra": "16226557 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "16226557 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16226557 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6237, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6237, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.775, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321318006 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.775, + "unit": "ns/op", + "extra": "321318006 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "321318006 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321318006 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.74, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320703625 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.74, + "unit": "ns/op", + "extra": "320703625 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "320703625 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320703625 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.866, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "642460021 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.866, + "unit": "ns/op", + "extra": "642460021 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "642460021 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "642460021 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.873, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "643056438 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.873, + "unit": "ns/op", + "extra": "643056438 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "643056438 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "643056438 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 5.912, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "198139885 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 5.912, + "unit": "ns/op", + "extra": "198139885 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "198139885 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "198139885 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.219, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "201999164 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.219, + "unit": "ns/op", + "extra": "201999164 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "201999164 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "201999164 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "89b83e6ff2b9fabaf0fe05f55569f89f107f7fb8", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/89b83e6ff2b9fabaf0fe05f55569f89f107f7fb8" + }, + "date": 1744706273496, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6246, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6246, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6222, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6222, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.35, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37914063 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.35, + "unit": "ns/op", + "extra": "37914063 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37914063 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37914063 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.31, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37124866 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.31, + "unit": "ns/op", + "extra": "37124866 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37124866 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37124866 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.821, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321190575 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.821, + "unit": "ns/op", + "extra": "321190575 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321190575 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321190575 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.754, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "319034919 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.754, + "unit": "ns/op", + "extra": "319034919 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "319034919 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "319034919 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.852, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174990141 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.852, + "unit": "ns/op", + "extra": "174990141 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174990141 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174990141 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.845, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175126977 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.845, + "unit": "ns/op", + "extra": "175126977 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175126977 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175126977 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.738, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137600696 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.738, + "unit": "ns/op", + "extra": "137600696 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137600696 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137600696 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.715, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "136947913 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.715, + "unit": "ns/op", + "extra": "136947913 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "136947913 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "136947913 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.79, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17100720 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.79, + "unit": "ns/op", + "extra": "17100720 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17100720 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17100720 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.9, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17316627 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.9, + "unit": "ns/op", + "extra": "17316627 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17316627 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17316627 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.968, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171111680 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.968, + "unit": "ns/op", + "extra": "171111680 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171111680 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171111680 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.966, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171891667 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.966, + "unit": "ns/op", + "extra": "171891667 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171891667 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171891667 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.468, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "185435762 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.468, + "unit": "ns/op", + "extra": "185435762 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "185435762 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "185435762 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.483, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "183787504 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.483, + "unit": "ns/op", + "extra": "183787504 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "183787504 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "183787504 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.45, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17024154 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.45, + "unit": "ns/op", + "extra": "17024154 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17024154 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17024154 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 70.37, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17069923 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 70.37, + "unit": "ns/op", + "extra": "17069923 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17069923 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17069923 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6232, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6232, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.622, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.622, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.74, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321516776 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.74, + "unit": "ns/op", + "extra": "321516776 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "321516776 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321516776 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321369808 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "321369808 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "321369808 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321369808 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.879, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "642049620 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.879, + "unit": "ns/op", + "extra": "642049620 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "642049620 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "642049620 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.876, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "641990948 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.876, + "unit": "ns/op", + "extra": "641990948 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "641990948 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "641990948 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.087, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "197796373 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.087, + "unit": "ns/op", + "extra": "197796373 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "197796373 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "197796373 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.226, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "193574472 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.226, + "unit": "ns/op", + "extra": "193574472 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "193574472 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "193574472 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "9d087bc29c12844471ca0a05fe04dea5684ad985", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/9d087bc29c12844471ca0a05fe04dea5684ad985" + }, + "date": 1744715729684, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6239, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6239, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.356, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.356, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.346, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.346, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.52, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37622077 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.52, + "unit": "ns/op", + "extra": "37622077 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37622077 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37622077 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.23, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35752400 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.23, + "unit": "ns/op", + "extra": "35752400 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35752400 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35752400 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321364797 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "321364797 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321364797 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321364797 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.754, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321204294 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.754, + "unit": "ns/op", + "extra": "321204294 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321204294 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321204294 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.848, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174262191 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.848, + "unit": "ns/op", + "extra": "174262191 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174262191 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174262191 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.849, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174670908 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.849, + "unit": "ns/op", + "extra": "174670908 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174670908 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174670908 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.713, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137462382 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.713, + "unit": "ns/op", + "extra": "137462382 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137462382 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137462382 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.726, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137847837 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.726, + "unit": "ns/op", + "extra": "137847837 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137847837 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137847837 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.69, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17353212 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.69, + "unit": "ns/op", + "extra": "17353212 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17353212 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17353212 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.98, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17344550 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.98, + "unit": "ns/op", + "extra": "17344550 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17344550 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17344550 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.983, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171503212 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.983, + "unit": "ns/op", + "extra": "171503212 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171503212 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171503212 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.965, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171910314 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.965, + "unit": "ns/op", + "extra": "171910314 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171910314 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171910314 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.477, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "184231356 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.477, + "unit": "ns/op", + "extra": "184231356 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "184231356 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "184231356 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.464, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "184842507 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.464, + "unit": "ns/op", + "extra": "184842507 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "184842507 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "184842507 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 70.61, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17155118 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 70.61, + "unit": "ns/op", + "extra": "17155118 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17155118 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17155118 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 70.08, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16197662 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 70.08, + "unit": "ns/op", + "extra": "16197662 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "16197662 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16197662 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3142, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3142, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6223, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6223, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3475, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3475, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.73, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321572408 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.73, + "unit": "ns/op", + "extra": "321572408 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "321572408 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321572408 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials", + "value": 3.728, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321294351 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - ns/op", + "value": 3.728, + "unit": "ns/op", + "extra": "321294351 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "321294351 times\n4 procs" + }, + { + "name": "BenchmarkCompareCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321294351 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.866, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "641572227 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.866, + "unit": "ns/op", + "extra": "641572227 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "641572227 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "641572227 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials", + "value": 1.87, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "642824719 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - ns/op", + "value": 1.87, + "unit": "ns/op", + "extra": "642824719 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "642824719 times\n4 procs" + }, + { + "name": "BenchmarkCompareRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "642824719 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.227, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "203218724 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.227, + "unit": "ns/op", + "extra": "203218724 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "203218724 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "203218724 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken", + "value": 6.233, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "191829544 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - ns/op", + "value": 6.233, + "unit": "ns/op", + "extra": "191829544 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "191829544 times\n4 procs" + }, + { + "name": "BenchmarkCompareToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "191829544 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "217097d87879b974e347381784a76499d1318cc5", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/217097d87879b974e347381784a76499d1318cc5" + }, + "date": 1744721518035, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3132, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3132, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6243, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6243, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6728, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6728, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.313, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.313, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3129, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3129, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3136, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3136, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.5, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37198645 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.5, + "unit": "ns/op", + "extra": "37198645 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37198645 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37198645 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.57, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35858824 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.57, + "unit": "ns/op", + "extra": "35858824 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35858824 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35858824 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.738, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "319012684 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.738, + "unit": "ns/op", + "extra": "319012684 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "319012684 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "319012684 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.734, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321047768 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.734, + "unit": "ns/op", + "extra": "321047768 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321047768 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321047768 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.843, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175147947 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.843, + "unit": "ns/op", + "extra": "175147947 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175147947 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175147947 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 7.475, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174897169 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 7.475, + "unit": "ns/op", + "extra": "174897169 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174897169 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174897169 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.714, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137597461 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.714, + "unit": "ns/op", + "extra": "137597461 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137597461 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137597461 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.729, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137477210 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.729, + "unit": "ns/op", + "extra": "137477210 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137477210 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137477210 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.68, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17082045 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.68, + "unit": "ns/op", + "extra": "17082045 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17082045 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17082045 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.82, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17409219 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.82, + "unit": "ns/op", + "extra": "17409219 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17409219 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17409219 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170226111 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7, + "unit": "ns/op", + "extra": "170226111 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170226111 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170226111 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.014, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171687386 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.014, + "unit": "ns/op", + "extra": "171687386 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171687386 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171687386 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.458, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "186166509 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.458, + "unit": "ns/op", + "extra": "186166509 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "186166509 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "186166509 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.452, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "185317234 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.452, + "unit": "ns/op", + "extra": "185317234 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "185317234 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "185317234 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 70.03, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16928998 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 70.03, + "unit": "ns/op", + "extra": "16928998 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "16928998 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16928998 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.39, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17119707 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.39, + "unit": "ns/op", + "extra": "17119707 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17119707 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17119707 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3107, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3107, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3108, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3108, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3108, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3108, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "87f7d84c85af8d6a01199c6a4a4677be6b0b05e4", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/87f7d84c85af8d6a01199c6a4a4677be6b0b05e4" + }, + "date": 1744791245431, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3142, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3142, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6241, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6241, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6227, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6227, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3155, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3155, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.18, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37110534 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.18, + "unit": "ns/op", + "extra": "37110534 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37110534 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37110534 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.18, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35919072 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.18, + "unit": "ns/op", + "extra": "35919072 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35919072 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35919072 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.733, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "319430871 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.733, + "unit": "ns/op", + "extra": "319430871 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "319430871 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "319430871 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.742, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320321650 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.742, + "unit": "ns/op", + "extra": "320321650 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320321650 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320321650 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.841, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175088642 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.841, + "unit": "ns/op", + "extra": "175088642 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175088642 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175088642 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.851, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175134874 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.851, + "unit": "ns/op", + "extra": "175134874 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175134874 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175134874 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.741, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137666700 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.741, + "unit": "ns/op", + "extra": "137666700 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137666700 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137666700 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.72, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137521483 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.72, + "unit": "ns/op", + "extra": "137521483 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137521483 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137521483 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.91, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17325697 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.91, + "unit": "ns/op", + "extra": "17325697 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17325697 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17325697 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.84, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17396054 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.84, + "unit": "ns/op", + "extra": "17396054 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17396054 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17396054 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.965, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171947874 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.965, + "unit": "ns/op", + "extra": "171947874 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171947874 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171947874 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.984, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172120228 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.984, + "unit": "ns/op", + "extra": "172120228 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "172120228 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172120228 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.253, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "192160570 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.253, + "unit": "ns/op", + "extra": "192160570 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "192160570 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "192160570 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.258, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175730686 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.258, + "unit": "ns/op", + "extra": "175730686 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "175730686 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175730686 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 67.76, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17484776 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 67.76, + "unit": "ns/op", + "extra": "17484776 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17484776 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17484776 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 68.11, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17758572 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 68.11, + "unit": "ns/op", + "extra": "17758572 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17758572 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17758572 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "263196831a0251b48285a33165d5ad0c7c818d01", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/263196831a0251b48285a33165d5ad0c7c818d01" + }, + "date": 1744808403420, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6226, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6226, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6582, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6582, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3216, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3216, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3168, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3168, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.01, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36428374 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.01, + "unit": "ns/op", + "extra": "36428374 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36428374 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36428374 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.29, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35947485 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.29, + "unit": "ns/op", + "extra": "35947485 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35947485 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35947485 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.785, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321378601 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.785, + "unit": "ns/op", + "extra": "321378601 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321378601 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321378601 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.784, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "318630646 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.784, + "unit": "ns/op", + "extra": "318630646 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "318630646 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "318630646 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.862, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174829809 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.862, + "unit": "ns/op", + "extra": "174829809 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174829809 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174829809 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.907, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174909721 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.907, + "unit": "ns/op", + "extra": "174909721 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174909721 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174909721 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.723, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137291247 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.723, + "unit": "ns/op", + "extra": "137291247 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137291247 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137291247 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.726, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137596231 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.726, + "unit": "ns/op", + "extra": "137596231 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137596231 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137596231 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.18, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17091489 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.18, + "unit": "ns/op", + "extra": "17091489 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17091489 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17091489 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 70.59, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "15651364 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 70.59, + "unit": "ns/op", + "extra": "15651364 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "15651364 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "15651364 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.044, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170192884 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.044, + "unit": "ns/op", + "extra": "170192884 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170192884 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170192884 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.002, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170678893 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.002, + "unit": "ns/op", + "extra": "170678893 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170678893 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170678893 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.587, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "181518468 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.587, + "unit": "ns/op", + "extra": "181518468 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "181518468 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "181518468 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.551, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "182436358 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.551, + "unit": "ns/op", + "extra": "182436358 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "182436358 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "182436358 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 70.53, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17555665 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 70.53, + "unit": "ns/op", + "extra": "17555665 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17555665 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17555665 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.32, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17453326 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.32, + "unit": "ns/op", + "extra": "17453326 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17453326 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17453326 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3132, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3132, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "1fca220fb0177887e5ca77f3a0ee10967956bb0a", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/1fca220fb0177887e5ca77f3a0ee10967956bb0a" + }, + "date": 1744892148821, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.324, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.324, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6355, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6355, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6222, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6222, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.62, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37282053 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.62, + "unit": "ns/op", + "extra": "37282053 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37282053 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37282053 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.22, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35976417 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.22, + "unit": "ns/op", + "extra": "35976417 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35976417 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35976417 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.732, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321515432 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.732, + "unit": "ns/op", + "extra": "321515432 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321515432 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321515432 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321307520 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "321307520 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321307520 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321307520 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.908, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175265132 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.908, + "unit": "ns/op", + "extra": "175265132 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175265132 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175265132 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.84, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175190490 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.84, + "unit": "ns/op", + "extra": "175190490 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175190490 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175190490 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.751, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137511552 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.751, + "unit": "ns/op", + "extra": "137511552 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137511552 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137511552 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.724, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137736951 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.724, + "unit": "ns/op", + "extra": "137736951 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137736951 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137736951 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.86, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17316172 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.86, + "unit": "ns/op", + "extra": "17316172 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17316172 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17316172 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.93, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17395827 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.93, + "unit": "ns/op", + "extra": "17395827 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17395827 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17395827 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.097, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169835200 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.097, + "unit": "ns/op", + "extra": "169835200 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169835200 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169835200 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.032, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170996263 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.032, + "unit": "ns/op", + "extra": "170996263 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170996263 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170996263 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.686, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "182978694 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.686, + "unit": "ns/op", + "extra": "182978694 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "182978694 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "182978694 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.79, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "182821708 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.79, + "unit": "ns/op", + "extra": "182821708 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "182821708 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "182821708 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.18, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17458792 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.18, + "unit": "ns/op", + "extra": "17458792 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17458792 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17458792 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.92, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17506528 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.92, + "unit": "ns/op", + "extra": "17506528 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17506528 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17506528 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3251, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3251, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3109, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3109, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3151, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3151, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "1319cb96dc756fdcaace6c33335c3408ba64d688", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/1319cb96dc756fdcaace6c33335c3408ba64d688" + }, + "date": 1744895925212, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3129, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3129, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6504, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6504, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6249, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6249, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3168, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3168, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3165, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3165, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.46, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37347907 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.46, + "unit": "ns/op", + "extra": "37347907 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37347907 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37347907 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.3, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35254198 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.3, + "unit": "ns/op", + "extra": "35254198 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35254198 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35254198 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.755, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "318478089 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.755, + "unit": "ns/op", + "extra": "318478089 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "318478089 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "318478089 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.785, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321573362 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.785, + "unit": "ns/op", + "extra": "321573362 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321573362 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321573362 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.845, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175313253 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.845, + "unit": "ns/op", + "extra": "175313253 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175313253 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175313253 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.958, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175191420 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.958, + "unit": "ns/op", + "extra": "175191420 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175191420 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175191420 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.712, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "132928423 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.712, + "unit": "ns/op", + "extra": "132928423 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "132928423 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "132928423 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.718, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137602178 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.718, + "unit": "ns/op", + "extra": "137602178 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137602178 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137602178 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3218, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3218, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "3a436a6b759fb925a39e26a0d917401e51d01a24", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/3a436a6b759fb925a39e26a0d917401e51d01a24" + }, + "date": 1744896030381, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6367, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6367, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6262, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6262, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.37, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35615217 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.37, + "unit": "ns/op", + "extra": "35615217 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35615217 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35615217 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.35, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35676280 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.35, + "unit": "ns/op", + "extra": "35676280 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35676280 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35676280 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.752, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "315171134 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.752, + "unit": "ns/op", + "extra": "315171134 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "315171134 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "315171134 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.745, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321070282 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.745, + "unit": "ns/op", + "extra": "321070282 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321070282 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321070282 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.935, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175332038 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.935, + "unit": "ns/op", + "extra": "175332038 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175332038 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175332038 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.966, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174047790 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.966, + "unit": "ns/op", + "extra": "174047790 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174047790 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174047790 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.819, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137199394 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.819, + "unit": "ns/op", + "extra": "137199394 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137199394 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137199394 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.723, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137821936 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.723, + "unit": "ns/op", + "extra": "137821936 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137821936 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137821936 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.42, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17253577 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.42, + "unit": "ns/op", + "extra": "17253577 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17253577 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17253577 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.89, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17383563 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.89, + "unit": "ns/op", + "extra": "17383563 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17383563 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17383563 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.888, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174041356 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.888, + "unit": "ns/op", + "extra": "174041356 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174041356 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174041356 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.895, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174903424 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.895, + "unit": "ns/op", + "extra": "174903424 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174903424 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174903424 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.538, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "181661724 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.538, + "unit": "ns/op", + "extra": "181661724 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "181661724 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "181661724 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.536, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "183316424 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.536, + "unit": "ns/op", + "extra": "183316424 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "183316424 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "183316424 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 68.69, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17550739 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 68.69, + "unit": "ns/op", + "extra": "17550739 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17550739 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17550739 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 68.58, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17454195 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 68.58, + "unit": "ns/op", + "extra": "17454195 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17454195 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17454195 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3264, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3264, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3149, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3149, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "22dc6ae6106cb527225a53a874b314f78774ba24", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/22dc6ae6106cb527225a53a874b314f78774ba24" + }, + "date": 1744896432673, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3129, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3129, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6228, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6228, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6231, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6231, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.45, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37747284 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.45, + "unit": "ns/op", + "extra": "37747284 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37747284 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37747284 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.79, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35344076 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.79, + "unit": "ns/op", + "extra": "35344076 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35344076 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35344076 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.774, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321580621 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.774, + "unit": "ns/op", + "extra": "321580621 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321580621 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321580621 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.733, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320579244 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.733, + "unit": "ns/op", + "extra": "320579244 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320579244 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320579244 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.851, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175383931 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.851, + "unit": "ns/op", + "extra": "175383931 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175383931 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175383931 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.851, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175287481 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.851, + "unit": "ns/op", + "extra": "175287481 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175287481 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175287481 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.728, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137376175 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.728, + "unit": "ns/op", + "extra": "137376175 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137376175 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137376175 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.729, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137483740 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.729, + "unit": "ns/op", + "extra": "137483740 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137483740 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137483740 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.76, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17331535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.76, + "unit": "ns/op", + "extra": "17331535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17331535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17331535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.84, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17412051 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.84, + "unit": "ns/op", + "extra": "17412051 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17412051 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17412051 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.886, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174753152 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.886, + "unit": "ns/op", + "extra": "174753152 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174753152 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174753152 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.858, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174990849 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.858, + "unit": "ns/op", + "extra": "174990849 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174990849 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174990849 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.566, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "183056550 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.566, + "unit": "ns/op", + "extra": "183056550 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "183056550 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "183056550 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.543, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "182256502 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.543, + "unit": "ns/op", + "extra": "182256502 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "182256502 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "182256502 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 68.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17501151 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 68.52, + "unit": "ns/op", + "extra": "17501151 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17501151 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17501151 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 68.48, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17557400 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 68.48, + "unit": "ns/op", + "extra": "17557400 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17557400 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17557400 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "15c4d5de1cdd4f91254a088c93f4887232e324dc", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/15c4d5de1cdd4f91254a088c93f4887232e324dc" + }, + "date": 1744897681361, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3138, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3138, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6224, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6224, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.622, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.622, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3138, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3138, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3187, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3187, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.36, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37810174 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.36, + "unit": "ns/op", + "extra": "37810174 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37810174 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37810174 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.42, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35341815 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.42, + "unit": "ns/op", + "extra": "35341815 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35341815 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35341815 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.767, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321457330 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.767, + "unit": "ns/op", + "extra": "321457330 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321457330 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321457330 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.732, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321390327 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.732, + "unit": "ns/op", + "extra": "321390327 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321390327 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321390327 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.898, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175175623 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.898, + "unit": "ns/op", + "extra": "175175623 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175175623 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175175623 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.883, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175128121 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.883, + "unit": "ns/op", + "extra": "175128121 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175128121 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175128121 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.738, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "136811110 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.738, + "unit": "ns/op", + "extra": "136811110 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "136811110 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "136811110 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.712, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137494646 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.712, + "unit": "ns/op", + "extra": "137494646 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137494646 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137494646 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.82, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17292750 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.82, + "unit": "ns/op", + "extra": "17292750 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17292750 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17292750 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.87, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17408724 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.87, + "unit": "ns/op", + "extra": "17408724 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17408724 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17408724 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.906, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174416259 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.906, + "unit": "ns/op", + "extra": "174416259 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174416259 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174416259 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.878, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "173917767 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.878, + "unit": "ns/op", + "extra": "173917767 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "173917767 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "173917767 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.549, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "182797786 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.549, + "unit": "ns/op", + "extra": "182797786 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "182797786 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "182797786 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 6.541, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "182886933 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 6.541, + "unit": "ns/op", + "extra": "182886933 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "182886933 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "182886933 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 68.67, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17473718 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 68.67, + "unit": "ns/op", + "extra": "17473718 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17473718 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17473718 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 68.32, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17482906 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 68.32, + "unit": "ns/op", + "extra": "17482906 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17482906 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17482906 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3108, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3108, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3359, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3359, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "0f266c4cc8cc8f36c700c34b0160924a26f05a01", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/0f266c4cc8cc8f36c700c34b0160924a26f05a01" + }, + "date": 1745492426211, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3131, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3131, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6239, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6239, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3176, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3176, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.44, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35632783 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.44, + "unit": "ns/op", + "extra": "35632783 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35632783 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35632783 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.22, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35927642 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.22, + "unit": "ns/op", + "extra": "35927642 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35927642 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35927642 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.787, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320993806 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.787, + "unit": "ns/op", + "extra": "320993806 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320993806 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320993806 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.834, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321377156 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.834, + "unit": "ns/op", + "extra": "321377156 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321377156 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321377156 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.857, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174712225 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.857, + "unit": "ns/op", + "extra": "174712225 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174712225 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174712225 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.864, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175387645 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.864, + "unit": "ns/op", + "extra": "175387645 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175387645 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175387645 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.718, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137746389 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.718, + "unit": "ns/op", + "extra": "137746389 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137746389 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137746389 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.719, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137423592 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.719, + "unit": "ns/op", + "extra": "137423592 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137423592 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137423592 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.35, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17616753 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.35, + "unit": "ns/op", + "extra": "17616753 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17616753 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17616753 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 67.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17697446 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 67.52, + "unit": "ns/op", + "extra": "17697446 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17697446 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17697446 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.869, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174051216 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.869, + "unit": "ns/op", + "extra": "174051216 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174051216 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174051216 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.887, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174527653 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.887, + "unit": "ns/op", + "extra": "174527653 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174527653 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174527653 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 9.477, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "126304716 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 9.477, + "unit": "ns/op", + "extra": "126304716 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "126304716 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "126304716 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 9.526, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "126615495 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 9.526, + "unit": "ns/op", + "extra": "126615495 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "126615495 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "126615495 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 70.4, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17409718 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 70.4, + "unit": "ns/op", + "extra": "17409718 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17409718 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17409718 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.34, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17399160 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.34, + "unit": "ns/op", + "extra": "17399160 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17399160 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17399160 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3127, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3127, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "f493bdacb6d573db1f100bc2488d419cec7ef860", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/f493bdacb6d573db1f100bc2488d419cec7ef860" + }, + "date": 1745492794910, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3127, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3127, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6238, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6238, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6233, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6233, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3162, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3162, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 34.09, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35982615 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 34.09, + "unit": "ns/op", + "extra": "35982615 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35982615 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35982615 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.5, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35823027 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.5, + "unit": "ns/op", + "extra": "35823027 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35823027 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35823027 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.731, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321034297 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.731, + "unit": "ns/op", + "extra": "321034297 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321034297 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321034297 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.744, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320973224 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.744, + "unit": "ns/op", + "extra": "320973224 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320973224 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320973224 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.86, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "166267299 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.86, + "unit": "ns/op", + "extra": "166267299 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "166267299 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "166267299 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.85, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174847141 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.85, + "unit": "ns/op", + "extra": "174847141 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174847141 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174847141 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.721, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137655810 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.721, + "unit": "ns/op", + "extra": "137655810 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137655810 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137655810 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.728, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137296987 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.728, + "unit": "ns/op", + "extra": "137296987 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137296987 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137296987 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.04, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17646885 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.04, + "unit": "ns/op", + "extra": "17646885 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17646885 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17646885 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 67.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "15741806 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 67.7, + "unit": "ns/op", + "extra": "15741806 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "15741806 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "15741806 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.869, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172776912 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.869, + "unit": "ns/op", + "extra": "172776912 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "172776912 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172776912 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.894, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175142560 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.894, + "unit": "ns/op", + "extra": "175142560 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "175142560 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175142560 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 9.496, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "126527614 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 9.496, + "unit": "ns/op", + "extra": "126527614 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "126527614 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "126527614 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 9.489, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "126554056 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 9.489, + "unit": "ns/op", + "extra": "126554056 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "126554056 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "126554056 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.93, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17432862 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.93, + "unit": "ns/op", + "extra": "17432862 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17432862 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17432862 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 70.9, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17431699 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 70.9, + "unit": "ns/op", + "extra": "17431699 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17431699 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17431699 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "aba78bf8a06865a38f49d6d90c49d9e0e2fe061c", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/aba78bf8a06865a38f49d6d90c49d9e0e2fe061c" + }, + "date": 1745828512440, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3204, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3204, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6238, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6238, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6236, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6236, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3602, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3602, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3166, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3166, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.18, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36824906 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.18, + "unit": "ns/op", + "extra": "36824906 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36824906 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36824906 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.36, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35037642 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.36, + "unit": "ns/op", + "extra": "35037642 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35037642 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35037642 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320895412 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "320895412 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320895412 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320895412 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.738, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321268542 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.738, + "unit": "ns/op", + "extra": "321268542 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321268542 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321268542 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.857, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175219250 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.857, + "unit": "ns/op", + "extra": "175219250 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175219250 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175219250 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.965, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "173761192 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.965, + "unit": "ns/op", + "extra": "173761192 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "173761192 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "173761192 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.768, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137780700 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.768, + "unit": "ns/op", + "extra": "137780700 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137780700 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137780700 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.745, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "136153722 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.745, + "unit": "ns/op", + "extra": "136153722 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "136153722 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "136153722 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 67.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17368406 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 67.7, + "unit": "ns/op", + "extra": "17368406 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17368406 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17368406 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 67.84, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16024756 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 67.84, + "unit": "ns/op", + "extra": "16024756 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16024756 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16024756 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.853, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170229308 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.853, + "unit": "ns/op", + "extra": "170229308 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170229308 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170229308 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.873, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174173300 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.873, + "unit": "ns/op", + "extra": "174173300 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174173300 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174173300 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 9.479, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "126673179 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 9.479, + "unit": "ns/op", + "extra": "126673179 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "126673179 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "126673179 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 9.489, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "126705873 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 9.489, + "unit": "ns/op", + "extra": "126705873 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "126705873 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "126705873 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 70.69, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17431664 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 70.69, + "unit": "ns/op", + "extra": "17431664 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17431664 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17431664 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 69.32, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17274258 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 69.32, + "unit": "ns/op", + "extra": "17274258 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17274258 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17274258 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3108, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3108, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3138, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3138, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3109, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3109, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "76cefccfdfc14992d560f5f0e1cf2e6d59c14be7", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/76cefccfdfc14992d560f5f0e1cf2e6d59c14be7" + }, + "date": 1745842496939, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3135, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3135, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6247, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6247, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6232, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6232, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.49, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36396631 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.49, + "unit": "ns/op", + "extra": "36396631 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36396631 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36396631 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.38, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36075868 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.38, + "unit": "ns/op", + "extra": "36075868 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36075868 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36075868 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.733, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320316241 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.733, + "unit": "ns/op", + "extra": "320316241 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320316241 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320316241 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.81, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "312200011 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.81, + "unit": "ns/op", + "extra": "312200011 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "312200011 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "312200011 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.848, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172482486 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.848, + "unit": "ns/op", + "extra": "172482486 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "172482486 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172482486 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.85, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175213820 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.85, + "unit": "ns/op", + "extra": "175213820 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175213820 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175213820 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.797, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "136886983 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.797, + "unit": "ns/op", + "extra": "136886983 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "136886983 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "136886983 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.714, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137480917 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.714, + "unit": "ns/op", + "extra": "137480917 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137480917 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137480917 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3407, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3407, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3198, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3198, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.322, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.322, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "3b9fcb7f29dd27872becaea12f6c8530db831e28", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/3b9fcb7f29dd27872becaea12f6c8530db831e28" + }, + "date": 1745844937940, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3132, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3132, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6231, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6231, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.626, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.626, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.313, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.313, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3167, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3167, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.07, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37000204 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.07, + "unit": "ns/op", + "extra": "37000204 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37000204 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37000204 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.5, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35503958 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.5, + "unit": "ns/op", + "extra": "35503958 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35503958 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35503958 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.754, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "314035818 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.754, + "unit": "ns/op", + "extra": "314035818 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "314035818 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "314035818 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.769, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321018565 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.769, + "unit": "ns/op", + "extra": "321018565 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321018565 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321018565 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.855, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175260490 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.855, + "unit": "ns/op", + "extra": "175260490 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175260490 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175260490 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.884, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175192587 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.884, + "unit": "ns/op", + "extra": "175192587 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175192587 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175192587 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.725, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137451001 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.725, + "unit": "ns/op", + "extra": "137451001 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137451001 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137451001 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "136955755 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.735, + "unit": "ns/op", + "extra": "136955755 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "136955755 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "136955755 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.45, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17606752 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.45, + "unit": "ns/op", + "extra": "17606752 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17606752 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17606752 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 67.6, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17744724 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 67.6, + "unit": "ns/op", + "extra": "17744724 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17744724 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17744724 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.01, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171416372 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.01, + "unit": "ns/op", + "extra": "171416372 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171416372 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171416372 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.997, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171829269 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.997, + "unit": "ns/op", + "extra": "171829269 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171829269 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171829269 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.72, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.72, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.71, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.71, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 66.77, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17816940 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 66.77, + "unit": "ns/op", + "extra": "17816940 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17816940 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17816940 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 66.56, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17964795 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 66.56, + "unit": "ns/op", + "extra": "17964795 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17964795 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17964795 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3131, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3131, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3245, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3245, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3131, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3131, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "57e500d81b3c1fa7f46e9c3983c15d323761208c", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/57e500d81b3c1fa7f46e9c3983c15d323761208c" + }, + "date": 1745845949334, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3577, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3577, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3191, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3191, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3129, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3129, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3143, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3143, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.74, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35174074 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.74, + "unit": "ns/op", + "extra": "35174074 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35174074 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35174074 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.7, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35764285 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.7, + "unit": "ns/op", + "extra": "35764285 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35764285 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35764285 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321092625 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "321092625 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321092625 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321092625 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.734, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321230565 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.734, + "unit": "ns/op", + "extra": "321230565 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321230565 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321230565 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.894, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175101019 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.894, + "unit": "ns/op", + "extra": "175101019 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175101019 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175101019 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.894, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175265244 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.894, + "unit": "ns/op", + "extra": "175265244 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175265244 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175265244 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.714, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137690760 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.714, + "unit": "ns/op", + "extra": "137690760 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137690760 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137690760 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.721, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137624454 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.721, + "unit": "ns/op", + "extra": "137624454 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137624454 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137624454 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.24, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17652289 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.24, + "unit": "ns/op", + "extra": "17652289 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17652289 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17652289 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 67.57, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17693719 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 67.57, + "unit": "ns/op", + "extra": "17693719 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17693719 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17693719 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.766, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "177182469 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.766, + "unit": "ns/op", + "extra": "177182469 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "177182469 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "177182469 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.793, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175483099 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.793, + "unit": "ns/op", + "extra": "175483099 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "175483099 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175483099 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 9.999, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "120100502 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 9.999, + "unit": "ns/op", + "extra": "120100502 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "120100502 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "120100502 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.01, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.01, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 67.66, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17116353 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 67.66, + "unit": "ns/op", + "extra": "17116353 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17116353 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17116353 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 67.42, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17894577 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 67.42, + "unit": "ns/op", + "extra": "17894577 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "17894577 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17894577 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3134, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3134, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "7755fb934a7d1d06b60272206cdbc1efb6d24052", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/7755fb934a7d1d06b60272206cdbc1efb6d24052" + }, + "date": 1745848516012, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3424, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3424, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.338, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.338, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3164, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3164, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3155, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3155, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.02, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37007446 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.02, + "unit": "ns/op", + "extra": "37007446 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37007446 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37007446 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.93, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35239938 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.93, + "unit": "ns/op", + "extra": "35239938 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35239938 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35239938 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.733, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320325708 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.733, + "unit": "ns/op", + "extra": "320325708 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320325708 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320325708 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.734, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320829910 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.734, + "unit": "ns/op", + "extra": "320829910 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320829910 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320829910 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.89, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174914685 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.89, + "unit": "ns/op", + "extra": "174914685 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174914685 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174914685 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.859, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "165052971 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.859, + "unit": "ns/op", + "extra": "165052971 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "165052971 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "165052971 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.738, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137036031 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.738, + "unit": "ns/op", + "extra": "137036031 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137036031 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137036031 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.713, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137519868 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.713, + "unit": "ns/op", + "extra": "137519868 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137519868 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137519868 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3142, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3142, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3127, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3127, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3151, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3151, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3142, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3142, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "676cf1c0357e839ae48a4bf78fed9baf82e1ae77", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/676cf1c0357e839ae48a4bf78fed9baf82e1ae77" + }, + "date": 1747144571873, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3167, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3167, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6241, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6241, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6221, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6221, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3406, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3406, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3165, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3165, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.83, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35849901 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.83, + "unit": "ns/op", + "extra": "35849901 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35849901 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35849901 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.95, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35905327 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.95, + "unit": "ns/op", + "extra": "35905327 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35905327 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35905327 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.734, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320991522 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.734, + "unit": "ns/op", + "extra": "320991522 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320991522 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320991522 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.755, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321384052 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.755, + "unit": "ns/op", + "extra": "321384052 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321384052 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321384052 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.895, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "167524311 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.895, + "unit": "ns/op", + "extra": "167524311 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "167524311 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "167524311 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.856, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175177116 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.856, + "unit": "ns/op", + "extra": "175177116 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175177116 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175177116 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.716, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "134991361 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.716, + "unit": "ns/op", + "extra": "134991361 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "134991361 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "134991361 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.718, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137488774 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.718, + "unit": "ns/op", + "extra": "137488774 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137488774 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137488774 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3287, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3287, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6344, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6344, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.632, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.632, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "41af0a7599797c024c59fa266d3abe1b2fc3d5af", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/41af0a7599797c024c59fa266d3abe1b2fc3d5af" + }, + "date": 1747156627741, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3127, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3127, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6223, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6223, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6234, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6234, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3136, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3136, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.71, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37155884 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.71, + "unit": "ns/op", + "extra": "37155884 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37155884 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37155884 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.91, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35615265 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.91, + "unit": "ns/op", + "extra": "35615265 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35615265 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35615265 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.734, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "317068486 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.734, + "unit": "ns/op", + "extra": "317068486 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "317068486 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "317068486 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320839839 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "320839839 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320839839 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320839839 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.93, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "168610159 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.93, + "unit": "ns/op", + "extra": "168610159 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "168610159 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "168610159 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.85, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175290597 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.85, + "unit": "ns/op", + "extra": "175290597 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175290597 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175290597 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.78, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "136138428 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.78, + "unit": "ns/op", + "extra": "136138428 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "136138428 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "136138428 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.711, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137561613 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.711, + "unit": "ns/op", + "extra": "137561613 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137561613 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137561613 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6221, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6221, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6228, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6228, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3143, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3143, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3141, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3141, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "7e3317a4d0f0c79990a4591c4179f186c1c93751", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/7e3317a4d0f0c79990a4591c4179f186c1c93751" + }, + "date": 1747160579075, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6245, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6245, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6234, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6234, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.8, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36524960 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.8, + "unit": "ns/op", + "extra": "36524960 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36524960 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36524960 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35012547 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33, + "unit": "ns/op", + "extra": "35012547 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35012547 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35012547 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "319812901 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "319812901 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "319812901 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "319812901 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.763, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321036674 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.763, + "unit": "ns/op", + "extra": "321036674 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321036674 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321036674 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.85, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "173768371 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.85, + "unit": "ns/op", + "extra": "173768371 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "173768371 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "173768371 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.853, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171122702 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.853, + "unit": "ns/op", + "extra": "171122702 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "171122702 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171122702 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.715, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137515189 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.715, + "unit": "ns/op", + "extra": "137515189 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137515189 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137515189 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.732, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137478896 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.732, + "unit": "ns/op", + "extra": "137478896 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137478896 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137478896 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8560342 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.5, + "unit": "ns/op", + "extra": "8560342 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8560342 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8560342 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.6, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9187051 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.6, + "unit": "ns/op", + "extra": "9187051 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9187051 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9187051 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.885, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174306276 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.885, + "unit": "ns/op", + "extra": "174306276 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174306276 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174306276 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.874, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174344467 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.874, + "unit": "ns/op", + "extra": "174344467 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174344467 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174344467 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.94, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.94, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.95, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.95, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 196, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6126080 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 196, + "unit": "ns/op", + "extra": "6126080 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6126080 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6126080 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.8, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6123842 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.8, + "unit": "ns/op", + "extra": "6123842 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6123842 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6123842 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6242, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6242, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6242, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6242, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis-developer", + "username": "redis-developer" + }, + "committer": { + "name": "redis-developer", + "username": "redis-developer" + }, + "id": "5a37c4b81b65b98504ad87c11f26370b71881a0c", + "message": "Add Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-04-09T03:47:18Z", + "url": "https://github.com/redis-developer/go-redis-entraid/pull/1/commits/5a37c4b81b65b98504ad87c11f26370b71881a0c" + }, + "date": 1747161444979, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3136, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3136, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.313, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.313, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.66, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35714696 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.66, + "unit": "ns/op", + "extra": "35714696 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35714696 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35714696 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.94, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35489126 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.94, + "unit": "ns/op", + "extra": "35489126 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35489126 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35489126 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321190432 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "321190432 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321190432 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321190432 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.759, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "316051058 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.759, + "unit": "ns/op", + "extra": "316051058 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "316051058 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "316051058 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.856, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174226731 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.856, + "unit": "ns/op", + "extra": "174226731 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174226731 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174226731 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.843, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169263854 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.843, + "unit": "ns/op", + "extra": "169263854 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "169263854 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169263854 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.714, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137544118 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.714, + "unit": "ns/op", + "extra": "137544118 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137544118 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137544118 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.725, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137536052 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.725, + "unit": "ns/op", + "extra": "137536052 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137536052 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137536052 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 134.1, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "7733866 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 134.1, + "unit": "ns/op", + "extra": "7733866 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "7733866 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "7733866 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.6, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9156490 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.6, + "unit": "ns/op", + "extra": "9156490 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9156490 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9156490 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.893, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174485344 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.893, + "unit": "ns/op", + "extra": "174485344 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174485344 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174485344 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.881, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174096460 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.881, + "unit": "ns/op", + "extra": "174096460 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174096460 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174096460 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.96, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.96, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.99, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.99, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.8, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6135721 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.8, + "unit": "ns/op", + "extra": "6135721 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6135721 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6135721 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 198.3, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6134581 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 198.3, + "unit": "ns/op", + "extra": "6134581 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6134581 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6134581 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3176, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3176, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3139, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3139, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "email": "1547186+ndyakov@users.noreply.github.com", + "name": "Nedyalko Dyakov", + "username": "ndyakov" + }, + "committer": { + "email": "noreply@github.com", + "name": "GitHub", + "username": "web-flow" + }, + "distinct": true, + "id": "1e25b29e9a0797ec4b1f7923ff211ed3e8410d5b", + "message": "Merge pull request #1 from redis-developer/intro\n\nAdd Entra ID Authentication Support for Redis ( `go-redis` )", + "timestamp": "2025-05-19T16:29:04+03:00", + "tree_id": "039357085ab059d19ce46109a76b4b3abffceb8a", + "url": "https://github.com/redis-developer/go-redis-entraid/commit/1e25b29e9a0797ec4b1f7923ff211ed3e8410d5b" + }, + "date": 1747661435004, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3163, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3163, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6224, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6224, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6365, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6365, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3186, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3186, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.93, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36011278 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.93, + "unit": "ns/op", + "extra": "36011278 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36011278 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36011278 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.35, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35830928 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.35, + "unit": "ns/op", + "extra": "35830928 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35830928 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35830928 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.732, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321167709 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.732, + "unit": "ns/op", + "extra": "321167709 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321167709 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321167709 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320770386 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "320770386 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320770386 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320770386 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.96, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174937801 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.96, + "unit": "ns/op", + "extra": "174937801 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174937801 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174937801 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.856, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174779077 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.856, + "unit": "ns/op", + "extra": "174779077 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174779077 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174779077 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.748, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137545171 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.748, + "unit": "ns/op", + "extra": "137545171 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137545171 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137545171 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.741, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "135847040 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.741, + "unit": "ns/op", + "extra": "135847040 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "135847040 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "135847040 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8761076 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.5, + "unit": "ns/op", + "extra": "8761076 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8761076 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8761076 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9188962 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.5, + "unit": "ns/op", + "extra": "9188962 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9188962 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9188962 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.887, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174652459 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.887, + "unit": "ns/op", + "extra": "174652459 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174652459 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174652459 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.891, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "165167908 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.891, + "unit": "ns/op", + "extra": "165167908 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "165167908 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "165167908 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.94, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.94, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.97, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.97, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6135698 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.7, + "unit": "ns/op", + "extra": "6135698 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6135698 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6135698 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 196.2, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6128031 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 196.2, + "unit": "ns/op", + "extra": "6128031 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6128031 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6128031 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.313, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.313, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "237660c8120fa06880bf8e849c4c2e783cbc65e5", + "message": "test(examples): Add runnable examples for testing", + "timestamp": "2025-05-20T08:12:40Z", + "url": "https://github.com/redis/go-redis-entraid/pull/2/commits/237660c8120fa06880bf8e849c4c2e783cbc65e5" + }, + "date": 1748034052382, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3131, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3131, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6268, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6268, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6235, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6235, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3109, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3109, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3234, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3234, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3358, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3358, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.88, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36084124 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.88, + "unit": "ns/op", + "extra": "36084124 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36084124 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36084124 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "34608948 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33, + "unit": "ns/op", + "extra": "34608948 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "34608948 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "34608948 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.733, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321267350 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.733, + "unit": "ns/op", + "extra": "321267350 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321267350 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321267350 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.741, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320587329 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.741, + "unit": "ns/op", + "extra": "320587329 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320587329 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320587329 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.858, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175133476 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.858, + "unit": "ns/op", + "extra": "175133476 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175133476 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175133476 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.845, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175414549 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.845, + "unit": "ns/op", + "extra": "175414549 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175414549 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175414549 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.734, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137765424 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.734, + "unit": "ns/op", + "extra": "137765424 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137765424 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137765424 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.734, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137782614 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.734, + "unit": "ns/op", + "extra": "137782614 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137782614 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137782614 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.4, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8585990 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.4, + "unit": "ns/op", + "extra": "8585990 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8585990 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8585990 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.4, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9184958 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.4, + "unit": "ns/op", + "extra": "9184958 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9184958 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9184958 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.005, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171397200 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.005, + "unit": "ns/op", + "extra": "171397200 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171397200 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171397200 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 8.803, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170895703 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 8.803, + "unit": "ns/op", + "extra": "170895703 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170895703 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170895703 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.02, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "120039488 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.02, + "unit": "ns/op", + "extra": "120039488 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "120039488 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "120039488 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "120027250 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10, + "unit": "ns/op", + "extra": "120027250 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "120027250 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "120027250 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6138825 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.7, + "unit": "ns/op", + "extra": "6138825 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6138825 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6138825 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.9, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6110934 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.9, + "unit": "ns/op", + "extra": "6110934 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6110934 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6110934 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6279, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6279, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6232, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6232, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3274, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3274, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "ce9c51b87e46b6c821d93733ee05241138d0bddc", + "message": "test(examples): Add runnable examples for testing", + "timestamp": "2025-05-20T08:12:40Z", + "url": "https://github.com/redis/go-redis-entraid/pull/2/commits/ce9c51b87e46b6c821d93733ee05241138d0bddc" + }, + "date": 1748034983493, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3127, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3127, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6248, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6248, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.637, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.637, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3272, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3272, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.04, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36010762 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.04, + "unit": "ns/op", + "extra": "36010762 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36010762 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36010762 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 34.47, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35149426 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 34.47, + "unit": "ns/op", + "extra": "35149426 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35149426 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35149426 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.733, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320254276 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.733, + "unit": "ns/op", + "extra": "320254276 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320254276 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320254276 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "313718314 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "313718314 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "313718314 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "313718314 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 7.062, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "167543481 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 7.062, + "unit": "ns/op", + "extra": "167543481 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "167543481 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "167543481 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.848, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174931285 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.848, + "unit": "ns/op", + "extra": "174931285 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174931285 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174931285 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.723, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137615094 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.723, + "unit": "ns/op", + "extra": "137615094 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137615094 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137615094 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.726, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137430540 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.726, + "unit": "ns/op", + "extra": "137430540 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137430540 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137430540 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.4, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8804656 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.4, + "unit": "ns/op", + "extra": "8804656 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8804656 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8804656 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9143628 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.5, + "unit": "ns/op", + "extra": "9143628 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9143628 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9143628 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.015, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171136616 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.015, + "unit": "ns/op", + "extra": "171136616 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171136616 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171136616 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.023, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171158574 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.023, + "unit": "ns/op", + "extra": "171158574 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171158574 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171158574 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.1, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.1, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 196.1, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6127959 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 196.1, + "unit": "ns/op", + "extra": "6127959 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6127959 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6127959 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 196.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6120084 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 196.5, + "unit": "ns/op", + "extra": "6120084 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6120084 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6120084 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6233, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6233, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3107, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3107, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "a0235fb3c1c1a176a68b1f5e3339991354454f6c", + "message": "test(examples): Add runnable examples for testing", + "timestamp": "2025-05-20T08:12:40Z", + "url": "https://github.com/redis/go-redis-entraid/pull/2/commits/a0235fb3c1c1a176a68b1f5e3339991354454f6c" + }, + "date": 1748035522815, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6225, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6225, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6231, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6231, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.339, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.339, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.06, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "33741890 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.06, + "unit": "ns/op", + "extra": "33741890 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "33741890 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "33741890 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.88, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35236142 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.88, + "unit": "ns/op", + "extra": "35236142 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35236142 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35236142 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.732, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320250073 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.732, + "unit": "ns/op", + "extra": "320250073 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320250073 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320250073 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.738, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320705178 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.738, + "unit": "ns/op", + "extra": "320705178 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320705178 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320705178 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 7.061, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "166986734 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 7.061, + "unit": "ns/op", + "extra": "166986734 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "166986734 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "166986734 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.857, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175166661 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.857, + "unit": "ns/op", + "extra": "175166661 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175166661 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175166661 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.774, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137626035 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.774, + "unit": "ns/op", + "extra": "137626035 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137626035 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137626035 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137769615 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.736, + "unit": "ns/op", + "extra": "137769615 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137769615 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137769615 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.6, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8851584 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.6, + "unit": "ns/op", + "extra": "8851584 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8851584 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8851584 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9189584 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.5, + "unit": "ns/op", + "extra": "9189584 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9189584 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9189584 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.01, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171110799 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.01, + "unit": "ns/op", + "extra": "171110799 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171110799 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171110799 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.006, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171224662 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.006, + "unit": "ns/op", + "extra": "171224662 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171224662 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171224662 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.04, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.04, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.02, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.02, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 199.3, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6090880 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 199.3, + "unit": "ns/op", + "extra": "6090880 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6090880 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6090880 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 198.8, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "5911005 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 198.8, + "unit": "ns/op", + "extra": "5911005 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "5911005 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "5911005 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3199, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3199, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3228, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3228, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6242, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6242, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6471, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6471, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3175, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3175, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "78763af5dc7fce5fd8268d2abe0bc758acaa06a8", + "message": "test(examples): Add runnable examples for testing", + "timestamp": "2025-05-20T08:12:40Z", + "url": "https://github.com/redis/go-redis-entraid/pull/2/commits/78763af5dc7fce5fd8268d2abe0bc758acaa06a8" + }, + "date": 1748036982103, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.313, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.313, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6239, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6239, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6227, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6227, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.88, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36274690 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.88, + "unit": "ns/op", + "extra": "36274690 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36274690 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36274690 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.96, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "34342245 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.96, + "unit": "ns/op", + "extra": "34342245 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "34342245 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "34342245 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.739, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321413504 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.739, + "unit": "ns/op", + "extra": "321413504 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321413504 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321413504 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.738, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "318931714 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.738, + "unit": "ns/op", + "extra": "318931714 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "318931714 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "318931714 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.86, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175057520 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.86, + "unit": "ns/op", + "extra": "175057520 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175057520 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175057520 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.845, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174938395 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.845, + "unit": "ns/op", + "extra": "174938395 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174938395 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174938395 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.724, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137655532 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.724, + "unit": "ns/op", + "extra": "137655532 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137655532 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137655532 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.713, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137808340 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.713, + "unit": "ns/op", + "extra": "137808340 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137808340 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137808340 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8685732 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.5, + "unit": "ns/op", + "extra": "8685732 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8685732 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8685732 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.6, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9185894 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.6, + "unit": "ns/op", + "extra": "9185894 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9185894 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9185894 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.003, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171570780 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.003, + "unit": "ns/op", + "extra": "171570780 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171570780 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171570780 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.009, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171256125 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.009, + "unit": "ns/op", + "extra": "171256125 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171256125 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171256125 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.08, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.08, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 9.998, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "120089974 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 9.998, + "unit": "ns/op", + "extra": "120089974 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "120089974 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "120089974 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.9, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6132759 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.9, + "unit": "ns/op", + "extra": "6132759 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6132759 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6132759 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.6, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6120460 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.6, + "unit": "ns/op", + "extra": "6120460 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6120460 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6120460 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3165, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3165, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3223, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3223, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3226, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3226, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6234, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6234, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.623, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.623, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "3239bc8b31f537978f76b2082e0644baafa005f8", + "message": "test(examples): Add runnable examples for testing", + "timestamp": "2025-05-20T08:12:40Z", + "url": "https://github.com/redis/go-redis-entraid/pull/2/commits/3239bc8b31f537978f76b2082e0644baafa005f8" + }, + "date": 1748336738810, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3139, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3139, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3127, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3127, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6252, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6252, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6236, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6236, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.96, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36860530 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.96, + "unit": "ns/op", + "extra": "36860530 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36860530 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36860530 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35352252 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33, + "unit": "ns/op", + "extra": "35352252 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35352252 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35352252 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321008234 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "321008234 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321008234 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321008234 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "317376115 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "317376115 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "317376115 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "317376115 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 7.177, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "173249491 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 7.177, + "unit": "ns/op", + "extra": "173249491 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "173249491 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "173249491 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.853, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170938770 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.853, + "unit": "ns/op", + "extra": "170938770 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "170938770 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170938770 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.723, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137605279 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.723, + "unit": "ns/op", + "extra": "137605279 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137605279 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137605279 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 9.174, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137348539 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 9.174, + "unit": "ns/op", + "extra": "137348539 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137348539 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137348539 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8786576 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.7, + "unit": "ns/op", + "extra": "8786576 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8786576 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8786576 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.8, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9187166 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.8, + "unit": "ns/op", + "extra": "9187166 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9187166 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9187166 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.076, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170221341 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.076, + "unit": "ns/op", + "extra": "170221341 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170221341 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170221341 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.004, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170955386 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.004, + "unit": "ns/op", + "extra": "170955386 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170955386 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170955386 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.04, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.04, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 196.2, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6135738 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 196.2, + "unit": "ns/op", + "extra": "6135738 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6135738 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6135738 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.9, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6128332 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.9, + "unit": "ns/op", + "extra": "6128332 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6128332 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6128332 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6232, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6232, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6282, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6282, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3135, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3135, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "email": "1547186+ndyakov@users.noreply.github.com", + "name": "Nedyalko Dyakov", + "username": "ndyakov" + }, + "committer": { + "email": "noreply@github.com", + "name": "GitHub", + "username": "web-flow" + }, + "distinct": true, + "id": "8ff1c69fc5ca8f071ef3742c325fc5db7d4569a9", + "message": "test(examples): Add runnable examples for testing (#2)\n\n* update dependencies\n\n* add custom identity provider example\n\n* add additional examples\n\n* change client variable name\n\n* chore(exampels): Add runnable examples\n\n* fix(examples): fix run script\n\n* fix(tests): fix client configuration\n\n* chore(repo): use new repo under redis org\n\n* Update examples/entraid/config/config.go\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>\n\n* fix(examples): fix config imports\n\n* fix(examples): fix credentials type\n\n* wip(examples): debug cert example\n\n* wip(examples): use object id for user assigned\n\n* wip(examples): rename examples and add shorter expirations\n\n* fix(tests): remove examples from coverage\n\ntrigger ci.\n\n* test(config): add test for the config parsing in the examples\n\n* test(examples): refactor parsePrivateKey to return err\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>", + "timestamp": "2025-05-27T12:36:24+03:00", + "tree_id": "c3622fb4ee077e460a0e8352283b55870fc6169a", + "url": "https://github.com/redis/go-redis-entraid/commit/8ff1c69fc5ca8f071ef3742c325fc5db7d4569a9" + }, + "date": 1748338706685, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3129, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3129, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6245, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6245, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6272, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6272, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3136, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3136, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3226, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3226, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.321, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.321, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3232, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3232, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.39, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36558862 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.39, + "unit": "ns/op", + "extra": "36558862 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36558862 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36558862 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.02, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "33597123 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.02, + "unit": "ns/op", + "extra": "33597123 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "33597123 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "33597123 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.87, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "317474014 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.87, + "unit": "ns/op", + "extra": "317474014 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "317474014 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "317474014 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.805, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320622759 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.805, + "unit": "ns/op", + "extra": "320622759 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320622759 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320622759 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.899, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174052478 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.899, + "unit": "ns/op", + "extra": "174052478 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174052478 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174052478 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.842, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "173197281 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.842, + "unit": "ns/op", + "extra": "173197281 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "173197281 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "173197281 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 9.03, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "133926894 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 9.03, + "unit": "ns/op", + "extra": "133926894 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "133926894 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "133926894 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.725, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137673921 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.725, + "unit": "ns/op", + "extra": "137673921 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137673921 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137673921 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8777218 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.5, + "unit": "ns/op", + "extra": "8777218 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8777218 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8777218 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.6, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9188535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.6, + "unit": "ns/op", + "extra": "9188535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9188535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9188535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.01, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169822896 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.01, + "unit": "ns/op", + "extra": "169822896 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169822896 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169822896 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.026, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171052912 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.026, + "unit": "ns/op", + "extra": "171052912 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171052912 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171052912 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.01, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.01, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6120576 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.7, + "unit": "ns/op", + "extra": "6120576 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6120576 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6120576 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 197.1, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6135138 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 197.1, + "unit": "ns/op", + "extra": "6135138 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6135138 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6135138 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6236, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6236, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6242, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6242, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3109, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3109, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "37dd33c7b821d161acb077ece63c9c10b0a9edd1", + "message": "refactor(release): refactoring release process a big.", + "timestamp": "2025-05-27T09:36:28Z", + "url": "https://github.com/redis/go-redis-entraid/pull/3/commits/37dd33c7b821d161acb077ece63c9c10b0a9edd1" + }, + "date": 1748340841618, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.332, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.332, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6242, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6242, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.628, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.628, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3175, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3175, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.1, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35861442 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.1, + "unit": "ns/op", + "extra": "35861442 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35861442 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35861442 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 35.07, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "34781494 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 35.07, + "unit": "ns/op", + "extra": "34781494 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "34781494 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "34781494 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.743, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320589855 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.743, + "unit": "ns/op", + "extra": "320589855 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320589855 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320589855 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.739, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321054454 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.739, + "unit": "ns/op", + "extra": "321054454 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321054454 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321054454 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.847, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174555999 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.847, + "unit": "ns/op", + "extra": "174555999 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174555999 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174555999 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.851, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174981134 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.851, + "unit": "ns/op", + "extra": "174981134 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174981134 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174981134 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.722, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137314748 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.722, + "unit": "ns/op", + "extra": "137314748 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137314748 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137314748 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.786, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137345157 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.786, + "unit": "ns/op", + "extra": "137345157 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137345157 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137345157 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 132, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9163599 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 132, + "unit": "ns/op", + "extra": "9163599 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9163599 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9163599 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9193626 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.5, + "unit": "ns/op", + "extra": "9193626 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9193626 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9193626 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.01, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170182005 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.01, + "unit": "ns/op", + "extra": "170182005 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170182005 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170182005 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.018, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171081267 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.018, + "unit": "ns/op", + "extra": "171081267 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171081267 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171081267 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.17, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.17, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.8, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6136638 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.8, + "unit": "ns/op", + "extra": "6136638 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6136638 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6136638 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6126176 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.7, + "unit": "ns/op", + "extra": "6126176 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6126176 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6126176 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.622, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.622, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6221, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6221, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3152, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3152, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "55f1bd388acd2a0dc736d0f7ba629e43c89627e9", + "message": "refactor(release): refactoring release process a big.", + "timestamp": "2025-05-27T09:36:28Z", + "url": "https://github.com/redis/go-redis-entraid/pull/3/commits/55f1bd388acd2a0dc736d0f7ba629e43c89627e9" + }, + "date": 1748340898352, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6248, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6248, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6223, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6223, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3424, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3424, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3139, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3139, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.91, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36512436 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.91, + "unit": "ns/op", + "extra": "36512436 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36512436 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36512436 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.88, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "34253445 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.88, + "unit": "ns/op", + "extra": "34253445 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "34253445 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "34253445 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "316625440 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "316625440 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "316625440 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "316625440 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.818, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320664372 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.818, + "unit": "ns/op", + "extra": "320664372 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320664372 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320664372 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.849, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171279709 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.849, + "unit": "ns/op", + "extra": "171279709 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "171279709 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171279709 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.846, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174746910 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.846, + "unit": "ns/op", + "extra": "174746910 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174746910 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174746910 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.947, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "134722760 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.947, + "unit": "ns/op", + "extra": "134722760 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "134722760 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "134722760 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.713, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137396847 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.713, + "unit": "ns/op", + "extra": "137396847 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137396847 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137396847 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8631684 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.5, + "unit": "ns/op", + "extra": "8631684 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8631684 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8631684 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9172186 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.7, + "unit": "ns/op", + "extra": "9172186 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9172186 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9172186 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.004, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171423876 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.004, + "unit": "ns/op", + "extra": "171423876 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171423876 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171423876 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.004, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171099778 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.004, + "unit": "ns/op", + "extra": "171099778 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171099778 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171099778 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.01, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.01, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.03, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.03, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 196.1, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6118939 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 196.1, + "unit": "ns/op", + "extra": "6118939 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6118939 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6118939 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 196.1, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6128934 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 196.1, + "unit": "ns/op", + "extra": "6128934 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6128934 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6128934 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6226, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6226, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6232, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6232, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3131, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3131, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "email": "1547186+ndyakov@users.noreply.github.com", + "name": "Nedyalko Dyakov", + "username": "ndyakov" + }, + "committer": { + "email": "noreply@github.com", + "name": "GitHub", + "username": "web-flow" + }, + "distinct": true, + "id": "b2c911fdb6ae117cf109ca19d4d26ffe9dc9d6e7", + "message": "refactor(release): refactoring release process a big. (#3)\n\n* refactor(release): refactoring release process a big.\n\nAdd issue templates\nAdd release drafter\nRemove version files\n\n* refactor(github): remove discussions link", + "timestamp": "2025-05-27T13:16:14+03:00", + "tree_id": "f3e8c9b49f544981498392874adf3115bd5ba892", + "url": "https://github.com/redis/go-redis-entraid/commit/b2c911fdb6ae117cf109ca19d4d26ffe9dc9d6e7" + }, + "date": 1748341051529, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3294, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3294, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6244, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6244, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.662, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.662, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.01, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35676363 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.01, + "unit": "ns/op", + "extra": "35676363 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35676363 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35676363 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.97, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "34730697 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.97, + "unit": "ns/op", + "extra": "34730697 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "34730697 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "34730697 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320354899 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "320354899 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320354899 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320354899 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.739, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "314931865 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.739, + "unit": "ns/op", + "extra": "314931865 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "314931865 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "314931865 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.852, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175312076 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.852, + "unit": "ns/op", + "extra": "175312076 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175312076 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175312076 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.906, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175246470 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.906, + "unit": "ns/op", + "extra": "175246470 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175246470 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175246470 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.716, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "134679841 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.716, + "unit": "ns/op", + "extra": "134679841 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "134679841 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "134679841 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.722, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137405691 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.722, + "unit": "ns/op", + "extra": "137405691 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137405691 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137405691 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.4, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8608774 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.4, + "unit": "ns/op", + "extra": "8608774 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8608774 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8608774 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9189361 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.5, + "unit": "ns/op", + "extra": "9189361 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9189361 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9189361 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.01, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170857858 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.01, + "unit": "ns/op", + "extra": "170857858 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170857858 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170857858 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.04, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170734465 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.04, + "unit": "ns/op", + "extra": "170734465 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170734465 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170734465 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.03, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.03, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.01, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.01, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.6, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6137150 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.6, + "unit": "ns/op", + "extra": "6137150 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6137150 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6137150 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.8, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6093812 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.8, + "unit": "ns/op", + "extra": "6093812 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6093812 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6093812 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3135, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3135, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6222, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6222, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6235, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6235, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.319, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.319, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "927d9f6044c971d85a92e3bd4717324352d49b0d", + "message": "refactor(github): move templates, add changelog", + "timestamp": "2025-05-27T10:16:18Z", + "url": "https://github.com/redis/go-redis-entraid/pull/4/commits/927d9f6044c971d85a92e3bd4717324352d49b0d" + }, + "date": 1748346603226, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3183, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3183, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6917, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6917, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6267, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6267, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36879643 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33, + "unit": "ns/op", + "extra": "36879643 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36879643 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36879643 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.97, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35078624 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.97, + "unit": "ns/op", + "extra": "35078624 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35078624 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35078624 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.808, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321751244 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.808, + "unit": "ns/op", + "extra": "321751244 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321751244 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321751244 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.739, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "313127191 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.739, + "unit": "ns/op", + "extra": "313127191 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "313127191 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "313127191 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.847, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174934818 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.847, + "unit": "ns/op", + "extra": "174934818 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174934818 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174934818 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.865, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174983341 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.865, + "unit": "ns/op", + "extra": "174983341 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174983341 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174983341 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.72, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137517529 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.72, + "unit": "ns/op", + "extra": "137517529 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137517529 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137517529 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.709, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137350020 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.709, + "unit": "ns/op", + "extra": "137350020 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137350020 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137350020 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.8, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8879222 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.8, + "unit": "ns/op", + "extra": "8879222 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8879222 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8879222 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9191144 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.5, + "unit": "ns/op", + "extra": "9191144 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9191144 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9191144 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.044, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170877703 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.044, + "unit": "ns/op", + "extra": "170877703 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170877703 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170877703 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.059, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171477294 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.059, + "unit": "ns/op", + "extra": "171477294 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171477294 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171477294 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "120099817 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10, + "unit": "ns/op", + "extra": "120099817 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "120099817 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "120099817 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 196.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6131977 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 196.7, + "unit": "ns/op", + "extra": "6131977 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6131977 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6131977 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 196.3, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6131928 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 196.3, + "unit": "ns/op", + "extra": "6131928 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6131928 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6131928 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3148, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3148, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6253, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6253, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "email": "1547186+ndyakov@users.noreply.github.com", + "name": "Nedyalko Dyakov", + "username": "ndyakov" + }, + "committer": { + "email": "noreply@github.com", + "name": "GitHub", + "username": "web-flow" + }, + "distinct": true, + "id": "0edba998f38523a5889f2a0c2fec504430ea51e9", + "message": "refactor(github): move templates, add changelog (#4)", + "timestamp": "2025-05-27T14:48:43+03:00", + "tree_id": "75cd0ae0a9728bd5ef090a4b82553002390f6684", + "url": "https://github.com/redis/go-redis-entraid/commit/0edba998f38523a5889f2a0c2fec504430ea51e9" + }, + "date": 1748346612743, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.313, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.313, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6234, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6234, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6235, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6235, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.313, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.313, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3198, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3198, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3159, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3159, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.83, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37162992 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.83, + "unit": "ns/op", + "extra": "37162992 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37162992 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37162992 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.81, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35546883 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.81, + "unit": "ns/op", + "extra": "35546883 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35546883 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35546883 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321214350 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "321214350 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321214350 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321214350 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.822, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320847020 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.822, + "unit": "ns/op", + "extra": "320847020 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320847020 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320847020 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.883, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174725234 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.883, + "unit": "ns/op", + "extra": "174725234 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174725234 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174725234 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.921, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175212895 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.921, + "unit": "ns/op", + "extra": "175212895 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175212895 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175212895 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.712, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137613622 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.712, + "unit": "ns/op", + "extra": "137613622 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137613622 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137613622 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.726, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137658424 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.726, + "unit": "ns/op", + "extra": "137658424 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137658424 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137658424 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.4, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8849024 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.4, + "unit": "ns/op", + "extra": "8849024 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8849024 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8849024 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9187400 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.5, + "unit": "ns/op", + "extra": "9187400 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9187400 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9187400 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.994, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171120956 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.994, + "unit": "ns/op", + "extra": "171120956 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171120956 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171120956 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.013, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171604423 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.013, + "unit": "ns/op", + "extra": "171604423 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171604423 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171604423 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.02, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "120057913 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.02, + "unit": "ns/op", + "extra": "120057913 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "120057913 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "120057913 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.02, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.02, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 197.2, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6102730 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 197.2, + "unit": "ns/op", + "extra": "6102730 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6102730 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6102730 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.8, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6133952 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.8, + "unit": "ns/op", + "extra": "6133952 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6133952 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6133952 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3203, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3203, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6228, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6228, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6236, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6236, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "254db8e85151552e63fbb8a4245793677f92bfd2", + "message": "chore(examples): update dependencies", + "timestamp": "2025-05-27T11:48:47Z", + "url": "https://github.com/redis/go-redis-entraid/pull/5/commits/254db8e85151552e63fbb8a4245793677f92bfd2" + }, + "date": 1748362839617, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3371, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3371, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3179, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3179, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6228, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6228, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6222, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6222, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3146, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3146, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3158, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3158, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.91, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36299295 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.91, + "unit": "ns/op", + "extra": "36299295 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36299295 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36299295 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 34.07, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "30929178 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 34.07, + "unit": "ns/op", + "extra": "30929178 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "30929178 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "30929178 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.733, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "304385476 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.733, + "unit": "ns/op", + "extra": "304385476 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "304385476 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "304385476 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.739, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "317282474 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.739, + "unit": "ns/op", + "extra": "317282474 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "317282474 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "317282474 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.859, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "173528257 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.859, + "unit": "ns/op", + "extra": "173528257 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "173528257 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "173528257 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.852, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175089129 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.852, + "unit": "ns/op", + "extra": "175089129 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175089129 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175089129 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.714, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137624049 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.714, + "unit": "ns/op", + "extra": "137624049 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137624049 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137624049 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.856, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137534624 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.856, + "unit": "ns/op", + "extra": "137534624 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137534624 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137534624 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8611910 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.5, + "unit": "ns/op", + "extra": "8611910 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8611910 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8611910 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.4, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9198512 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.4, + "unit": "ns/op", + "extra": "9198512 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9198512 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9198512 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.039, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170707144 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.039, + "unit": "ns/op", + "extra": "170707144 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170707144 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170707144 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.039, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170436508 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.039, + "unit": "ns/op", + "extra": "170436508 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170436508 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170436508 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.02, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.02, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.03, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.03, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.8, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6128413 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.8, + "unit": "ns/op", + "extra": "6128413 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6128413 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6128413 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6129162 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.7, + "unit": "ns/op", + "extra": "6129162 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6129162 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6129162 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3109, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3109, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.623, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.623, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3388, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3388, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "ae377b747856189f2d82a5ea53d1e84368c5a3bf", + "message": "chore(examples): update dependencies", + "timestamp": "2025-05-27T11:48:47Z", + "url": "https://github.com/redis/go-redis-entraid/pull/5/commits/ae377b747856189f2d82a5ea53d1e84368c5a3bf" + }, + "date": 1748363903394, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3147, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3147, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3142, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3142, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3161, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3161, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3212, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3212, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 34.9, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "30715563 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 34.9, + "unit": "ns/op", + "extra": "30715563 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "30715563 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "30715563 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.83, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35444719 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.83, + "unit": "ns/op", + "extra": "35444719 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35444719 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35444719 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.786, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321032358 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.786, + "unit": "ns/op", + "extra": "321032358 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321032358 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321032358 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "318906931 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "318906931 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "318906931 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "318906931 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.84, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "158271123 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.84, + "unit": "ns/op", + "extra": "158271123 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "158271123 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "158271123 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.852, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175107914 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.852, + "unit": "ns/op", + "extra": "175107914 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175107914 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175107914 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.772, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137808350 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.772, + "unit": "ns/op", + "extra": "137808350 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137808350 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137808350 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.729, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137655570 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.729, + "unit": "ns/op", + "extra": "137655570 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137655570 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137655570 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.4, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8809290 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.4, + "unit": "ns/op", + "extra": "8809290 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8809290 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8809290 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.6, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9197869 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.6, + "unit": "ns/op", + "extra": "9197869 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9197869 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9197869 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.014, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171720063 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.014, + "unit": "ns/op", + "extra": "171720063 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171720063 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171720063 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.013, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171193360 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.013, + "unit": "ns/op", + "extra": "171193360 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171193360 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171193360 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.04, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "120048867 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.04, + "unit": "ns/op", + "extra": "120048867 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "120048867 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "120048867 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.03, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "120065726 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.03, + "unit": "ns/op", + "extra": "120065726 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "120065726 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "120065726 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 196.1, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6131460 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 196.1, + "unit": "ns/op", + "extra": "6131460 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6131460 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6131460 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 196.1, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6134544 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 196.1, + "unit": "ns/op", + "extra": "6134544 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6134544 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6134544 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6222, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6222, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "33c7baf338402a1383ff7c12a2ff271d77d32c94", + "message": "chore(examples): update dependencies", + "timestamp": "2025-05-27T11:48:47Z", + "url": "https://github.com/redis/go-redis-entraid/pull/5/commits/33c7baf338402a1383ff7c12a2ff271d77d32c94" + }, + "date": 1748364482505, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6237, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6237, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6228, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6228, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3153, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3153, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3217, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3217, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3137, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3137, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "30866702 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33, + "unit": "ns/op", + "extra": "30866702 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "30866702 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "30866702 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.18, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35990854 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.18, + "unit": "ns/op", + "extra": "35990854 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35990854 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35990854 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.741, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "318596491 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.741, + "unit": "ns/op", + "extra": "318596491 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "318596491 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "318596491 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "317187750 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "317187750 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "317187750 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "317187750 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 7.164, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "167405037 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 7.164, + "unit": "ns/op", + "extra": "167405037 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "167405037 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "167405037 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.841, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175228430 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.841, + "unit": "ns/op", + "extra": "175228430 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175228430 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175228430 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.719, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137183827 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.719, + "unit": "ns/op", + "extra": "137183827 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137183827 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137183827 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.71, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137260509 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.71, + "unit": "ns/op", + "extra": "137260509 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137260509 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137260509 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8627103 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.5, + "unit": "ns/op", + "extra": "8627103 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8627103 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8627103 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.8, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9174182 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.8, + "unit": "ns/op", + "extra": "9174182 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9174182 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9174182 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.016, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171186020 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.016, + "unit": "ns/op", + "extra": "171186020 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171186020 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171186020 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.022, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170858286 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.022, + "unit": "ns/op", + "extra": "170858286 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170858286 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170858286 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.13, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.13, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.6, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6124905 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.6, + "unit": "ns/op", + "extra": "6124905 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6124905 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6124905 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.6, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6124928 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.6, + "unit": "ns/op", + "extra": "6124928 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6124928 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6124928 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3264, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3264, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3127, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3127, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.313, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.313, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6236, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6236, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6223, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6223, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3209, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3209, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "6806df0bb9ffb585598545377d0a07ddff1dc6e3", + "message": "chore(examples): update dependencies", + "timestamp": "2025-05-27T11:48:47Z", + "url": "https://github.com/redis/go-redis-entraid/pull/5/commits/6806df0bb9ffb585598545377d0a07ddff1dc6e3" + }, + "date": 1748375156735, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3203, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3203, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6244, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6244, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.624, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.624, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3166, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3166, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.92, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37003808 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.92, + "unit": "ns/op", + "extra": "37003808 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37003808 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37003808 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.48, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36133744 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.48, + "unit": "ns/op", + "extra": "36133744 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36133744 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36133744 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.786, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "318181182 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.786, + "unit": "ns/op", + "extra": "318181182 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "318181182 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "318181182 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.764, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "318717358 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.764, + "unit": "ns/op", + "extra": "318717358 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "318717358 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "318717358 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.907, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172672389 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.907, + "unit": "ns/op", + "extra": "172672389 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "172672389 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172672389 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.866, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175165923 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.866, + "unit": "ns/op", + "extra": "175165923 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175165923 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175165923 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.727, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137465370 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.727, + "unit": "ns/op", + "extra": "137465370 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137465370 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137465370 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.715, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137184579 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.715, + "unit": "ns/op", + "extra": "137184579 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137184579 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137184579 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 132.3, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9153554 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 132.3, + "unit": "ns/op", + "extra": "9153554 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9153554 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9153554 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9182239 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.7, + "unit": "ns/op", + "extra": "9182239 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9182239 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9182239 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.079, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169963046 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.079, + "unit": "ns/op", + "extra": "169963046 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169963046 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169963046 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.068, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169798443 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.068, + "unit": "ns/op", + "extra": "169798443 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169798443 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169798443 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.68, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.68, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.69, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.69, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6138303 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.5, + "unit": "ns/op", + "extra": "6138303 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6138303 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6138303 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 196.3, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6104659 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 196.3, + "unit": "ns/op", + "extra": "6104659 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6104659 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6104659 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6267, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6267, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6232, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6232, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "fad39869b72ee3ea267b66210699e00f4ca96f02", + "message": "chore(examples): update dependencies", + "timestamp": "2025-05-27T11:48:47Z", + "url": "https://github.com/redis/go-redis-entraid/pull/5/commits/fad39869b72ee3ea267b66210699e00f4ca96f02" + }, + "date": 1748376421914, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3134, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3134, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3279, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3279, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.316, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.316, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 34.34, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36734721 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 34.34, + "unit": "ns/op", + "extra": "36734721 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36734721 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36734721 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.05, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35556758 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.05, + "unit": "ns/op", + "extra": "35556758 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35556758 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35556758 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.77, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "315986878 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.77, + "unit": "ns/op", + "extra": "315986878 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "315986878 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "315986878 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.733, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321046092 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.733, + "unit": "ns/op", + "extra": "321046092 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321046092 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321046092 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.845, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174659413 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.845, + "unit": "ns/op", + "extra": "174659413 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174659413 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174659413 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.917, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174447513 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.917, + "unit": "ns/op", + "extra": "174447513 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174447513 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174447513 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.784, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "135536344 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.784, + "unit": "ns/op", + "extra": "135536344 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "135536344 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "135536344 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.718, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137726911 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.718, + "unit": "ns/op", + "extra": "137726911 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137726911 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137726911 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.6, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8590472 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.6, + "unit": "ns/op", + "extra": "8590472 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8590472 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8590472 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9190820 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.5, + "unit": "ns/op", + "extra": "9190820 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9190820 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9190820 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.077, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169813916 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.077, + "unit": "ns/op", + "extra": "169813916 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169813916 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169813916 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.089, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169711332 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.089, + "unit": "ns/op", + "extra": "169711332 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169711332 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169711332 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 11.01, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 11.01, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.98, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.98, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.6, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6144625 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.6, + "unit": "ns/op", + "extra": "6144625 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6144625 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6144625 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.9, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6114294 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.9, + "unit": "ns/op", + "extra": "6114294 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6114294 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6114294 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3284, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3284, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6226, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6226, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6238, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6238, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.315, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.315, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "email": "1547186+ndyakov@users.noreply.github.com", + "name": "Nedyalko Dyakov", + "username": "ndyakov" + }, + "committer": { + "email": "noreply@github.com", + "name": "GitHub", + "username": "web-flow" + }, + "distinct": true, + "id": "50c261be00baa6f7fa090293f10a89b910e770df", + "message": "chore(deps): update dependencies (#5)\n\n* chore(examples): update dependencies\n\nAdd release notes\n\n* chore(deps): Update package dependencies\n\n* chore(makefile): Add makefile for tests\n\nAdd Makefile to reproduce the test commands used in the CI.\n\nA better approach for the future would be to use the exact makefile in the CI\npipelines.\n\n* chore(deps): Update deps and go version\n\nIt turns out that the x/crypto with the security fixes requires go 1.23\nanyway.", + "timestamp": "2025-05-27T23:08:28+03:00", + "tree_id": "1eb2d60d4e66d8bdfedd8e9052d2bb2c1994a068", + "url": "https://github.com/redis/go-redis-entraid/commit/50c261be00baa6f7fa090293f10a89b910e770df" + }, + "date": 1748376614466, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3131, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3131, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3136, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3136, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3275, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3275, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.314, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.314, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 34.42, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36752542 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 34.42, + "unit": "ns/op", + "extra": "36752542 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36752542 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36752542 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.17, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "33054098 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.17, + "unit": "ns/op", + "extra": "33054098 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "33054098 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "33054098 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.763, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "319831926 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.763, + "unit": "ns/op", + "extra": "319831926 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "319831926 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "319831926 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320416531 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "320416531 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320416531 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320416531 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.853, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174830200 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.853, + "unit": "ns/op", + "extra": "174830200 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174830200 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174830200 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.888, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175377326 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.888, + "unit": "ns/op", + "extra": "175377326 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175377326 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175377326 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.72, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137573607 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.72, + "unit": "ns/op", + "extra": "137573607 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137573607 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137573607 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.711, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "136386303 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.711, + "unit": "ns/op", + "extra": "136386303 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "136386303 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "136386303 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 131.2, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "8838067 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 131.2, + "unit": "ns/op", + "extra": "8838067 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "8838067 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "8838067 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 130.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "9196011 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 130.5, + "unit": "ns/op", + "extra": "9196011 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "9196011 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "9196011 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.071, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169263436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.071, + "unit": "ns/op", + "extra": "169263436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169263436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169263436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.07, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169164643 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.07, + "unit": "ns/op", + "extra": "169164643 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169164643 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169164643 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.92, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.92, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 11.07, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 11.07, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 195.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6135574 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 195.5, + "unit": "ns/op", + "extra": "6135574 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6135574 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6135574 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 196, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "6138854 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 196, + "unit": "ns/op", + "extra": "6138854 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "6138854 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "6138854 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3177, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3177, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3127, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3127, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.313, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.313, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.624, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.624, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6262, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6262, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3167, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3167, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3146, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3146, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "c950c6696fbccc7c255a5c04d2919236440e0a8d", + "message": "fix(manager): optimize durationToRenewal", + "timestamp": "2025-05-27T20:08:32Z", + "url": "https://github.com/redis/go-redis-entraid/pull/6/commits/c950c6696fbccc7c255a5c04d2919236440e0a8d" + }, + "date": 1748387699671, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3144, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3144, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3138, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3138, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3251, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3251, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.79, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35434131 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.79, + "unit": "ns/op", + "extra": "35434131 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35434131 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35434131 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.91, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "34892644 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.91, + "unit": "ns/op", + "extra": "34892644 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "34892644 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "34892644 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.745, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "316114654 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.745, + "unit": "ns/op", + "extra": "316114654 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "316114654 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "316114654 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.931, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321188487 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.931, + "unit": "ns/op", + "extra": "321188487 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321188487 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321188487 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.848, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172651524 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.848, + "unit": "ns/op", + "extra": "172651524 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "172651524 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172651524 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.854, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175340914 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.854, + "unit": "ns/op", + "extra": "175340914 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175340914 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175340914 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.72, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "136868148 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.72, + "unit": "ns/op", + "extra": "136868148 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "136868148 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "136868148 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.769, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137401035 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.769, + "unit": "ns/op", + "extra": "137401035 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137401035 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137401035 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.84, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "15809954 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.84, + "unit": "ns/op", + "extra": "15809954 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "15809954 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "15809954 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 69.42, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17029492 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 69.42, + "unit": "ns/op", + "extra": "17029492 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17029492 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17029492 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.004, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171443294 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.004, + "unit": "ns/op", + "extra": "171443294 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171443294 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171443294 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.001, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171170143 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.001, + "unit": "ns/op", + "extra": "171170143 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171170143 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171170143 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.02, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.02, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.02, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.02, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.85, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19448313 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.85, + "unit": "ns/op", + "extra": "19448313 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19448313 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19448313 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.47, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18386398 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.47, + "unit": "ns/op", + "extra": "18386398 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "18386398 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18386398 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3139, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3139, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6241, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6241, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6227, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6227, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "3f6754f70d627cd8a3c9e2b76d6a0685e771fee8", + "message": "fix(manager): optimize durationToRenewal", + "timestamp": "2025-05-27T20:08:32Z", + "url": "https://github.com/redis/go-redis-entraid/pull/6/commits/3f6754f70d627cd8a3c9e2b76d6a0685e771fee8" + }, + "date": 1748388128583, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3145, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3145, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 34.17, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "34829444 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 34.17, + "unit": "ns/op", + "extra": "34829444 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "34829444 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "34829444 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.02, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35428869 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.02, + "unit": "ns/op", + "extra": "35428869 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35428869 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35428869 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.812, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "300073450 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.812, + "unit": "ns/op", + "extra": "300073450 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "300073450 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "300073450 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.734, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321140979 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.734, + "unit": "ns/op", + "extra": "321140979 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321140979 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321140979 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.848, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175029114 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.848, + "unit": "ns/op", + "extra": "175029114 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175029114 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175029114 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.841, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174733323 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.841, + "unit": "ns/op", + "extra": "174733323 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174733323 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174733323 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.725, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137536593 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.725, + "unit": "ns/op", + "extra": "137536593 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137536593 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137536593 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.714, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137534280 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.714, + "unit": "ns/op", + "extra": "137534280 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137534280 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137534280 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 65.59, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17524444 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 65.59, + "unit": "ns/op", + "extra": "17524444 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17524444 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17524444 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 65.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18130087 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 65.52, + "unit": "ns/op", + "extra": "18130087 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18130087 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18130087 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.874, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174478436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.874, + "unit": "ns/op", + "extra": "174478436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174478436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174478436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.878, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174747224 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.878, + "unit": "ns/op", + "extra": "174747224 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174747224 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174747224 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 11.03, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 11.03, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 11, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 11, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.98, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19284634 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.98, + "unit": "ns/op", + "extra": "19284634 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19284634 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19284634 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 62.03, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19343418 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 62.03, + "unit": "ns/op", + "extra": "19343418 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19343418 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19343418 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3161, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3161, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3178, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3178, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3276, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3276, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6243, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6243, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "282a6341dddea53da9c056f98ca405d4e85eca6a", + "message": "fix(manager): optimize durationToRenewal", + "timestamp": "2025-05-27T20:08:32Z", + "url": "https://github.com/redis/go-redis-entraid/pull/6/commits/282a6341dddea53da9c056f98ca405d4e85eca6a" + }, + "date": 1748388633795, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3207, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3207, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3136, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3136, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.73, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36426812 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.73, + "unit": "ns/op", + "extra": "36426812 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36426812 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36426812 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.05, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "34531820 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.05, + "unit": "ns/op", + "extra": "34531820 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "34531820 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "34531820 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.929, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "282589654 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.929, + "unit": "ns/op", + "extra": "282589654 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "282589654 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "282589654 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.753, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "312910225 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.753, + "unit": "ns/op", + "extra": "312910225 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "312910225 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "312910225 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.894, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "173680555 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.894, + "unit": "ns/op", + "extra": "173680555 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "173680555 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "173680555 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.851, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175182090 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.851, + "unit": "ns/op", + "extra": "175182090 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175182090 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175182090 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.714, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137574067 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.714, + "unit": "ns/op", + "extra": "137574067 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137574067 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137574067 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.729, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137633742 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.729, + "unit": "ns/op", + "extra": "137633742 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137633742 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137633742 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 70.13, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16564108 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 70.13, + "unit": "ns/op", + "extra": "16564108 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16564108 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16564108 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 70.05, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16911476 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 70.05, + "unit": "ns/op", + "extra": "16911476 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16911476 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16911476 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.1, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169449684 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.1, + "unit": "ns/op", + "extra": "169449684 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169449684 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169449684 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.108, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169565366 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.108, + "unit": "ns/op", + "extra": "169565366 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169565366 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169565366 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.69, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.69, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.68, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.68, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.42, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19553524 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.42, + "unit": "ns/op", + "extra": "19553524 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19553524 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19553524 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.41, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19517588 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.41, + "unit": "ns/op", + "extra": "19517588 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19517588 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19517588 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6234, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6234, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3131, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3131, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "93108198d4c0f4b31d6d14248acd7e1e172a09f7", + "message": "fix(manager): optimize durationToRenewal", + "timestamp": "2025-05-27T20:08:32Z", + "url": "https://github.com/redis/go-redis-entraid/pull/6/commits/93108198d4c0f4b31d6d14248acd7e1e172a09f7" + }, + "date": 1748388776233, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3129, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3129, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.61, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36315069 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.61, + "unit": "ns/op", + "extra": "36315069 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36315069 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36315069 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.95, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35493951 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.95, + "unit": "ns/op", + "extra": "35493951 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35493951 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35493951 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.734, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321102756 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.734, + "unit": "ns/op", + "extra": "321102756 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321102756 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321102756 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.781, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321361292 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.781, + "unit": "ns/op", + "extra": "321361292 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321361292 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321361292 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 7.173, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174869668 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 7.173, + "unit": "ns/op", + "extra": "174869668 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174869668 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174869668 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.85, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172040499 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.85, + "unit": "ns/op", + "extra": "172040499 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "172040499 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172040499 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.715, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137626748 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.715, + "unit": "ns/op", + "extra": "137626748 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137626748 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137626748 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 9.045, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137455302 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 9.045, + "unit": "ns/op", + "extra": "137455302 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137455302 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137455302 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 70.44, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16530222 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 70.44, + "unit": "ns/op", + "extra": "16530222 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16530222 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16530222 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 70.42, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16996634 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 70.42, + "unit": "ns/op", + "extra": "16996634 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16996634 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16996634 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.073, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169586221 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.073, + "unit": "ns/op", + "extra": "169586221 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169586221 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169586221 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.064, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170123310 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.064, + "unit": "ns/op", + "extra": "170123310 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170123310 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170123310 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.68, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.68, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.6, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.6, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.67, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19520468 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.67, + "unit": "ns/op", + "extra": "19520468 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19520468 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19520468 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.39, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19537159 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.39, + "unit": "ns/op", + "extra": "19537159 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19537159 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19537159 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3132, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3132, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6225, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6225, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6225, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6225, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "fa01924c257fe9204e6cc8b40cd1898a74b019c9", + "message": "fix(manager): optimize durationToRenewal", + "timestamp": "2025-05-27T20:08:32Z", + "url": "https://github.com/redis/go-redis-entraid/pull/6/commits/fa01924c257fe9204e6cc8b40cd1898a74b019c9" + }, + "date": 1748389143285, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3127, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3127, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3287, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3287, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.84, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36813246 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.84, + "unit": "ns/op", + "extra": "36813246 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36813246 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36813246 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 34.09, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35392039 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 34.09, + "unit": "ns/op", + "extra": "35392039 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35392039 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35392039 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.804, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321259510 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.804, + "unit": "ns/op", + "extra": "321259510 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321259510 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321259510 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.865, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321299730 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.865, + "unit": "ns/op", + "extra": "321299730 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321299730 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321299730 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.851, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174916882 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.851, + "unit": "ns/op", + "extra": "174916882 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174916882 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174916882 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.842, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175231808 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.842, + "unit": "ns/op", + "extra": "175231808 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175231808 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175231808 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.824, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137668880 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.824, + "unit": "ns/op", + "extra": "137668880 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137668880 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137668880 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.72, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137440330 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.72, + "unit": "ns/op", + "extra": "137440330 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137440330 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137440330 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 70.62, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16102556 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 70.62, + "unit": "ns/op", + "extra": "16102556 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16102556 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16102556 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 70.01, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16993700 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 70.01, + "unit": "ns/op", + "extra": "16993700 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16993700 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16993700 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.074, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169821534 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.074, + "unit": "ns/op", + "extra": "169821534 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169821534 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169821534 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.095, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169431220 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.095, + "unit": "ns/op", + "extra": "169431220 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169431220 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169431220 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.67, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.67, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.7, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.59, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19565432 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.59, + "unit": "ns/op", + "extra": "19565432 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19565432 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19565432 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.41, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19508448 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.41, + "unit": "ns/op", + "extra": "19508448 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19508448 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19508448 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3127, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3127, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.316, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.316, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6239, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6239, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6271, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6271, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "7998ce1994c6b25cfeb49e82b1a1ff9a344d7b75", + "message": "fix(manager): optimize durationToRenewal", + "timestamp": "2025-05-27T20:08:32Z", + "url": "https://github.com/redis/go-redis-entraid/pull/6/commits/7998ce1994c6b25cfeb49e82b1a1ff9a344d7b75" + }, + "date": 1748389421209, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3158, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3158, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.58, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36901586 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.58, + "unit": "ns/op", + "extra": "36901586 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36901586 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36901586 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.9, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35580554 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.9, + "unit": "ns/op", + "extra": "35580554 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35580554 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35580554 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.738, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321197295 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.738, + "unit": "ns/op", + "extra": "321197295 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321197295 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321197295 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.748, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "319092700 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.748, + "unit": "ns/op", + "extra": "319092700 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "319092700 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "319092700 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 7.087, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "167561713 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 7.087, + "unit": "ns/op", + "extra": "167561713 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "167561713 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "167561713 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.843, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "173312562 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.843, + "unit": "ns/op", + "extra": "173312562 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "173312562 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "173312562 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.726, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137513601 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.726, + "unit": "ns/op", + "extra": "137513601 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137513601 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137513601 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.927, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137675540 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.927, + "unit": "ns/op", + "extra": "137675540 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137675540 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137675540 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 71.67, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16687075 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 71.67, + "unit": "ns/op", + "extra": "16687075 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16687075 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16687075 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 71.22, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17548336 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 71.22, + "unit": "ns/op", + "extra": "17548336 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17548336 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17548336 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.875, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174258000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.875, + "unit": "ns/op", + "extra": "174258000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174258000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174258000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.895, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169807324 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.895, + "unit": "ns/op", + "extra": "169807324 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169807324 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169807324 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.99, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.99, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.98, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.98, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 62.87, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19128038 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 62.87, + "unit": "ns/op", + "extra": "19128038 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19128038 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19128038 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 62.61, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19148547 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 62.61, + "unit": "ns/op", + "extra": "19148547 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19148547 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19148547 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3167, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3167, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6233, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6233, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6222, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6222, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "70db08e857937d2c58cc005b29d3a7a819486c30", + "message": "fix(manager): optimize durationToRenewal", + "timestamp": "2025-05-27T20:08:32Z", + "url": "https://github.com/redis/go-redis-entraid/pull/6/commits/70db08e857937d2c58cc005b29d3a7a819486c30" + }, + "date": 1748440339713, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3136, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3136, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3397, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3397, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.319, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.319, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.77, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37236542 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.77, + "unit": "ns/op", + "extra": "37236542 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37236542 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37236542 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.95, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35292740 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.95, + "unit": "ns/op", + "extra": "35292740 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35292740 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35292740 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "318344360 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "318344360 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "318344360 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "318344360 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.753, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321226948 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.753, + "unit": "ns/op", + "extra": "321226948 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321226948 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321226948 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.856, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174946000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.856, + "unit": "ns/op", + "extra": "174946000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174946000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174946000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.894, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "173713107 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.894, + "unit": "ns/op", + "extra": "173713107 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "173713107 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "173713107 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.719, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137598741 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.719, + "unit": "ns/op", + "extra": "137598741 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137598741 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137598741 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.723, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137562877 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.723, + "unit": "ns/op", + "extra": "137562877 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137562877 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137562877 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 67.34, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17686429 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 67.34, + "unit": "ns/op", + "extra": "17686429 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17686429 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17686429 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 66.9, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16101310 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 66.9, + "unit": "ns/op", + "extra": "16101310 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16101310 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16101310 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.876, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174407401 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.876, + "unit": "ns/op", + "extra": "174407401 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174407401 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174407401 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.887, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174655785 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.887, + "unit": "ns/op", + "extra": "174655785 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174655785 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174655785 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.98, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.98, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.99, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.99, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 67.11, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19345456 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 67.11, + "unit": "ns/op", + "extra": "19345456 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19345456 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19345456 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 67.15, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19205053 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 67.15, + "unit": "ns/op", + "extra": "19205053 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19205053 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19205053 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.627, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.627, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6226, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6226, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "934c9f39c68880d63202836a028e0551449ea908", + "message": "fix(manager): optimize durationToRenewal", + "timestamp": "2025-05-27T20:08:32Z", + "url": "https://github.com/redis/go-redis-entraid/pull/6/commits/934c9f39c68880d63202836a028e0551449ea908" + }, + "date": 1748459680025, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.313, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.313, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3215, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3215, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3585, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3585, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3221, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3221, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3165, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3165, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.65, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37141279 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.65, + "unit": "ns/op", + "extra": "37141279 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37141279 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37141279 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.99, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35361382 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.99, + "unit": "ns/op", + "extra": "35361382 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35361382 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35361382 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321001546 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "321001546 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321001546 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321001546 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.772, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "319231171 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.772, + "unit": "ns/op", + "extra": "319231171 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "319231171 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "319231171 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.846, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174902259 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.846, + "unit": "ns/op", + "extra": "174902259 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174902259 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174902259 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.857, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174429459 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.857, + "unit": "ns/op", + "extra": "174429459 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174429459 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174429459 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.727, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137646912 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.727, + "unit": "ns/op", + "extra": "137646912 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137646912 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137646912 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.719, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137524638 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.719, + "unit": "ns/op", + "extra": "137524638 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137524638 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137524638 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 65.03, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17526732 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 65.03, + "unit": "ns/op", + "extra": "17526732 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17526732 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17526732 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.46, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18168471 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.46, + "unit": "ns/op", + "extra": "18168471 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18168471 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18168471 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.06, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169829431 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.06, + "unit": "ns/op", + "extra": "169829431 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169829431 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169829431 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.072, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169916046 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.072, + "unit": "ns/op", + "extra": "169916046 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169916046 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169916046 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.71, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.71, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.7, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.5, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19484128 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.5, + "unit": "ns/op", + "extra": "19484128 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19484128 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19484128 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.26, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19535133 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.26, + "unit": "ns/op", + "extra": "19535133 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19535133 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19535133 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6228, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6228, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6231, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6231, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "abf9f257c1572099d8985895f3a01d07d8496869", + "message": "fix(manager): optimize durationToRenewal", + "timestamp": "2025-05-27T20:08:32Z", + "url": "https://github.com/redis/go-redis-entraid/pull/6/commits/abf9f257c1572099d8985895f3a01d07d8496869" + }, + "date": 1748461754924, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.315, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.315, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3139, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3139, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3134, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3134, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.31, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36422302 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.31, + "unit": "ns/op", + "extra": "36422302 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36422302 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36422302 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.97, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35901319 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.97, + "unit": "ns/op", + "extra": "35901319 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35901319 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35901319 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.744, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320701759 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.744, + "unit": "ns/op", + "extra": "320701759 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320701759 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320701759 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.739, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "318229533 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.739, + "unit": "ns/op", + "extra": "318229533 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "318229533 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "318229533 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.858, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169041034 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.858, + "unit": "ns/op", + "extra": "169041034 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "169041034 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169041034 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.85, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174809397 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.85, + "unit": "ns/op", + "extra": "174809397 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174809397 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174809397 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.836, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137510233 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.836, + "unit": "ns/op", + "extra": "137510233 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137510233 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137510233 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.721, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137588706 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.721, + "unit": "ns/op", + "extra": "137588706 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137588706 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137588706 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.34, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16410675 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.34, + "unit": "ns/op", + "extra": "16410675 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16410675 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16410675 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 63.83, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18556466 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 63.83, + "unit": "ns/op", + "extra": "18556466 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18556466 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18556466 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.078, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169671276 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.078, + "unit": "ns/op", + "extra": "169671276 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169671276 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169671276 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.06, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169801641 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.06, + "unit": "ns/op", + "extra": "169801641 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169801641 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169801641 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.7, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.71, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.71, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.3, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19568038 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.3, + "unit": "ns/op", + "extra": "19568038 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19568038 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19568038 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.53, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19526210 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.53, + "unit": "ns/op", + "extra": "19526210 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19526210 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19526210 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3135, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3135, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6226, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6226, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6319, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6319, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3131, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3131, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "d3d600191dcac639d68e4a06462907204a76e64c", + "message": "fix(manager): optimize durationToRenewal", + "timestamp": "2025-05-27T20:08:32Z", + "url": "https://github.com/redis/go-redis-entraid/pull/6/commits/d3d600191dcac639d68e4a06462907204a76e64c" + }, + "date": 1748464659798, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3129, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3129, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3139, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3139, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.72, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36897571 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.72, + "unit": "ns/op", + "extra": "36897571 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36897571 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36897571 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.91, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35427313 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.91, + "unit": "ns/op", + "extra": "35427313 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35427313 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35427313 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.739, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320983832 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.739, + "unit": "ns/op", + "extra": "320983832 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320983832 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320983832 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.731, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321250723 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.731, + "unit": "ns/op", + "extra": "321250723 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321250723 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321250723 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.852, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175159056 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.852, + "unit": "ns/op", + "extra": "175159056 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175159056 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175159056 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.838, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175421419 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.838, + "unit": "ns/op", + "extra": "175421419 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175421419 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175421419 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.744, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137612840 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.744, + "unit": "ns/op", + "extra": "137612840 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137612840 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137612840 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.718, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "136914230 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.718, + "unit": "ns/op", + "extra": "136914230 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "136914230 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "136914230 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 63.96, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16825942 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 63.96, + "unit": "ns/op", + "extra": "16825942 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16825942 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16825942 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.13, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18864766 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.13, + "unit": "ns/op", + "extra": "18864766 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18864766 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18864766 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.868, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174617349 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.868, + "unit": "ns/op", + "extra": "174617349 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174617349 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174617349 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.889, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174771297 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.889, + "unit": "ns/op", + "extra": "174771297 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "174771297 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174771297 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.68, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.68, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.84, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.84, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.34, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19554235 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.34, + "unit": "ns/op", + "extra": "19554235 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19554235 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19554235 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.33, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19581680 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.33, + "unit": "ns/op", + "extra": "19581680 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19581680 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19581680 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3132, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3132, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3109, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3109, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6235, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6235, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6226, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6226, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3109, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3109, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "defa5a390387a59eedee7d6c8085215933c4d4ff", + "message": "fix(manager): optimize durationToRenewal", + "timestamp": "2025-05-27T20:08:32Z", + "url": "https://github.com/redis/go-redis-entraid/pull/6/commits/defa5a390387a59eedee7d6c8085215933c4d4ff" + }, + "date": 1748502931800, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3241, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3241, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3262, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3262, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3217, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3217, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.95, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36830940 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.95, + "unit": "ns/op", + "extra": "36830940 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36830940 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36830940 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "34634316 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33, + "unit": "ns/op", + "extra": "34634316 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "34634316 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "34634316 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "317467910 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "317467910 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "317467910 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "317467910 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320405272 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "320405272 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320405272 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320405272 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.863, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174756457 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.863, + "unit": "ns/op", + "extra": "174756457 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174756457 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174756457 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.854, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174928753 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.854, + "unit": "ns/op", + "extra": "174928753 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174928753 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174928753 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.754, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137710365 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.754, + "unit": "ns/op", + "extra": "137710365 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137710365 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137710365 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.72, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137603793 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.72, + "unit": "ns/op", + "extra": "137603793 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137603793 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137603793 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 65.59, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16522794 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 65.59, + "unit": "ns/op", + "extra": "16522794 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16522794 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16522794 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 66.16, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16738215 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 66.16, + "unit": "ns/op", + "extra": "16738215 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16738215 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16738215 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.069, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169640742 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.069, + "unit": "ns/op", + "extra": "169640742 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169640742 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169640742 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.226, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170002476 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.226, + "unit": "ns/op", + "extra": "170002476 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170002476 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170002476 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.51, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.51, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.48, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.48, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.23, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19511476 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.23, + "unit": "ns/op", + "extra": "19511476 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19511476 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19511476 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.14, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19453647 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.14, + "unit": "ns/op", + "extra": "19453647 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19453647 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19453647 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3143, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3143, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "4e61f883f3145951fdac329c6c2c036f062692e3", + "message": "fix(manager): optimize durationToRenewal", + "timestamp": "2025-05-27T20:08:32Z", + "url": "https://github.com/redis/go-redis-entraid/pull/6/commits/4e61f883f3145951fdac329c6c2c036f062692e3" + }, + "date": 1748513091949, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3273, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3273, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3129, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3129, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3104, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3104, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3055, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3055, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3039, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3039, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3135, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3135, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.36, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37285272 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.36, + "unit": "ns/op", + "extra": "37285272 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37285272 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37285272 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.35, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36062230 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.35, + "unit": "ns/op", + "extra": "36062230 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36062230 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36062230 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "302066017 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "302066017 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "302066017 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "302066017 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.661, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "326762892 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.661, + "unit": "ns/op", + "extra": "326762892 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "326762892 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "326762892 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.703, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "176317741 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.703, + "unit": "ns/op", + "extra": "176317741 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "176317741 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "176317741 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.724, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "180498980 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.724, + "unit": "ns/op", + "extra": "180498980 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "180498980 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "180498980 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.712, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "138764835 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.712, + "unit": "ns/op", + "extra": "138764835 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "138764835 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "138764835 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.638, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "139012255 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.638, + "unit": "ns/op", + "extra": "139012255 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "139012255 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "139012255 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 63.29, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18895755 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 63.29, + "unit": "ns/op", + "extra": "18895755 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18895755 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18895755 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 68.4, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17735923 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 68.4, + "unit": "ns/op", + "extra": "17735923 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17735923 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17735923 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.922, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171610647 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.922, + "unit": "ns/op", + "extra": "171610647 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171610647 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171610647 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.911, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171041170 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.911, + "unit": "ns/op", + "extra": "171041170 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171041170 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171041170 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 9.887, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "121660929 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 9.887, + "unit": "ns/op", + "extra": "121660929 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "121660929 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "121660929 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 10.14, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "120439827 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 10.14, + "unit": "ns/op", + "extra": "120439827 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "120439827 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "120439827 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.54, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19318765 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.54, + "unit": "ns/op", + "extra": "19318765 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19318765 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19318765 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.08, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "20056099 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.08, + "unit": "ns/op", + "extra": "20056099 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "20056099 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "20056099 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3102, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3102, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3099, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3099, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3102, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3102, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3082, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3082, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3075, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3075, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.2998, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.2998, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3066, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3066, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "1c5016abfcb89f1dcc547fa9f9afe37b8ee1ad6c", + "message": "fix(manager): optimize durationToRenewal", + "timestamp": "2025-05-27T20:08:32Z", + "url": "https://github.com/redis/go-redis-entraid/pull/6/commits/1c5016abfcb89f1dcc547fa9f9afe37b8ee1ad6c" + }, + "date": 1748513868086, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3158, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3158, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.83, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36466078 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.83, + "unit": "ns/op", + "extra": "36466078 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36466078 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36466078 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.95, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35090768 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.95, + "unit": "ns/op", + "extra": "35090768 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35090768 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35090768 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320110981 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "320110981 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320110981 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320110981 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.755, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320693860 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.755, + "unit": "ns/op", + "extra": "320693860 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320693860 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320693860 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.869, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175119466 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.869, + "unit": "ns/op", + "extra": "175119466 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175119466 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175119466 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.856, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175077980 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.856, + "unit": "ns/op", + "extra": "175077980 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175077980 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175077980 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.837, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137789922 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.837, + "unit": "ns/op", + "extra": "137789922 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137789922 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137789922 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.927, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137413618 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.927, + "unit": "ns/op", + "extra": "137413618 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137413618 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137413618 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.19, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "15824430 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.19, + "unit": "ns/op", + "extra": "15824430 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "15824430 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "15824430 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.4, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18682213 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.4, + "unit": "ns/op", + "extra": "18682213 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18682213 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18682213 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170854276 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.118, + "unit": "ns/op", + "extra": "170854276 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170854276 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170854276 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.007, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "166926565 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.007, + "unit": "ns/op", + "extra": "166926565 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "166926565 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "166926565 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.66, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76569946 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.66, + "unit": "ns/op", + "extra": "76569946 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76569946 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76569946 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.65, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "75838498 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.65, + "unit": "ns/op", + "extra": "75838498 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "75838498 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "75838498 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 62.16, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19284246 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 62.16, + "unit": "ns/op", + "extra": "19284246 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19284246 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19284246 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 62.2, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19171134 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 62.2, + "unit": "ns/op", + "extra": "19171134 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19171134 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19171134 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3145, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3145, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3158, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3158, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "email": "1547186+ndyakov@users.noreply.github.com", + "name": "Nedyalko Dyakov", + "username": "ndyakov" + }, + "committer": { + "email": "noreply@github.com", + "name": "GitHub", + "username": "web-flow" + }, + "distinct": true, + "id": "8a4b7e13bed4d55cebe73121a206a7fd3783eef0", + "message": "fix(manager): optimize durationToRenewal (#6)\n\n* fix(manager): optimize token durationToRenewal calculation\n\nI observed the durationToRenewal was significantly slower than before\ndue to changes done to cover the unnecessary precision. Using\nMilliseconds as the TTL is sufficient and significantly faster.\n\n* chore(example): update deps in example\n\n* chore(tests): restore TestConcurrentTokenManagerOperations\n\n* fix(manager): use floating point for refresh ratio\n\n* refactor(tests): use time.Sleep when possible\n\ncopilot thinks time.After can cause flakiness\n\n* fix(manager): use integer math with higher precision\n\n* fix(manager): precision as variable, fix typo\n\n* test(manager): test durationToRenewal calculation\n\n* test(manager): add 100% coverage on GetToken\n\n* fix(manager): skip racy test and address comments\n\n* actually, the defer will be executed even if the function panics\n\n* chore(manager): improve comments", + "timestamp": "2025-05-29T13:43:03+03:00", + "tree_id": "fc029db688a072caabb5e877c98c0257773f7532", + "url": "https://github.com/redis/go-redis-entraid/commit/8a4b7e13bed4d55cebe73121a206a7fd3783eef0" + }, + "date": 1748515466514, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3715, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3715, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3155, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3155, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3145, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3145, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.38, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36344012 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.38, + "unit": "ns/op", + "extra": "36344012 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36344012 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36344012 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.6, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35388186 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.6, + "unit": "ns/op", + "extra": "35388186 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35388186 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35388186 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.926, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320909444 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.926, + "unit": "ns/op", + "extra": "320909444 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320909444 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320909444 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.775, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320049147 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.775, + "unit": "ns/op", + "extra": "320049147 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320049147 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320049147 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.856, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175177680 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.856, + "unit": "ns/op", + "extra": "175177680 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175177680 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175177680 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.88, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174873427 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.88, + "unit": "ns/op", + "extra": "174873427 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174873427 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174873427 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.8, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137545662 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.8, + "unit": "ns/op", + "extra": "137545662 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137545662 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137545662 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.74, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137487133 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.74, + "unit": "ns/op", + "extra": "137487133 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137487133 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137487133 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.09, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16087646 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.09, + "unit": "ns/op", + "extra": "16087646 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16087646 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16087646 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.65, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18247266 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.65, + "unit": "ns/op", + "extra": "18247266 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18247266 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18247266 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.049, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170837079 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.049, + "unit": "ns/op", + "extra": "170837079 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170837079 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170837079 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.152, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "166703278 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.152, + "unit": "ns/op", + "extra": "166703278 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "166703278 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "166703278 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76305859 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.7, + "unit": "ns/op", + "extra": "76305859 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76305859 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76305859 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.67, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76293858 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.67, + "unit": "ns/op", + "extra": "76293858 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76293858 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76293858 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 63.62, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19325492 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 63.62, + "unit": "ns/op", + "extra": "19325492 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19325492 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19325492 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 62.41, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19195982 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 62.41, + "unit": "ns/op", + "extra": "19195982 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19195982 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19195982 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3151, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3151, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3171, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3171, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3148, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3148, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3152, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3152, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "c9219635518fb758105e825a8c817c9cf55a4572", + "message": "chore(documentation): add release notes, add badges in readme", + "timestamp": "2025-05-29T10:43:07Z", + "url": "https://github.com/redis/go-redis-entraid/pull/7/commits/c9219635518fb758105e825a8c817c9cf55a4572" + }, + "date": 1748516110925, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3173, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3173, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3196, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3196, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.7, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "32296549 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.7, + "unit": "ns/op", + "extra": "32296549 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "32296549 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "32296549 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.17, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35474113 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.17, + "unit": "ns/op", + "extra": "35474113 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35474113 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35474113 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.766, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320840823 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.766, + "unit": "ns/op", + "extra": "320840823 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320840823 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320840823 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320886268 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "320886268 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320886268 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320886268 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 7.207, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175052732 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 7.207, + "unit": "ns/op", + "extra": "175052732 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175052732 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175052732 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.883, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172371958 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.883, + "unit": "ns/op", + "extra": "172371958 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "172371958 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172371958 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.73, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137512945 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.73, + "unit": "ns/op", + "extra": "137512945 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137512945 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137512945 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.802, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137584293 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.802, + "unit": "ns/op", + "extra": "137584293 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137584293 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137584293 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 66.6, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16018508 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 66.6, + "unit": "ns/op", + "extra": "16018508 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16018508 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16018508 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.06, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18084718 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.06, + "unit": "ns/op", + "extra": "18084718 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18084718 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18084718 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.028, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170269765 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.028, + "unit": "ns/op", + "extra": "170269765 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170269765 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170269765 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.029, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170454328 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.029, + "unit": "ns/op", + "extra": "170454328 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170454328 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170454328 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.66, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "75983371 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.66, + "unit": "ns/op", + "extra": "75983371 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "75983371 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "75983371 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.75, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76687767 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.75, + "unit": "ns/op", + "extra": "76687767 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76687767 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76687767 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 62.06, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19378230 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 62.06, + "unit": "ns/op", + "extra": "19378230 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19378230 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19378230 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.94, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19406235 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.94, + "unit": "ns/op", + "extra": "19406235 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19406235 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19406235 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3131, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3131, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3138, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3138, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "email": "1547186+ndyakov@users.noreply.github.com", + "name": "Nedyalko Dyakov", + "username": "ndyakov" + }, + "committer": { + "email": "noreply@github.com", + "name": "GitHub", + "username": "web-flow" + }, + "distinct": true, + "id": "e4df648365ca3c726c3ff8b164f5c299cd0b4dd7", + "message": "chore(documentation): add release notes, add badges in readme (#7)\n\nadd release notes for next version\nadd badges to readme\ngofmt -s test file", + "timestamp": "2025-05-29T14:00:05+03:00", + "tree_id": "9cdb8b62fb81cc41a9a7b0417095e458f74d8574", + "url": "https://github.com/redis/go-redis-entraid/commit/e4df648365ca3c726c3ff8b164f5c299cd0b4dd7" + }, + "date": 1748516501773, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3146, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3146, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3141, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3141, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3157, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3157, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.71, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35992106 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.71, + "unit": "ns/op", + "extra": "35992106 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35992106 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35992106 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.55, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35765442 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.55, + "unit": "ns/op", + "extra": "35765442 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35765442 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35765442 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321366681 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "321366681 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321366681 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321366681 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.734, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "319857250 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.734, + "unit": "ns/op", + "extra": "319857250 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "319857250 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "319857250 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.868, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174350215 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.868, + "unit": "ns/op", + "extra": "174350215 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174350215 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174350215 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.908, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169780052 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.908, + "unit": "ns/op", + "extra": "169780052 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "169780052 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169780052 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.715, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "133023973 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.715, + "unit": "ns/op", + "extra": "133023973 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "133023973 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "133023973 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.716, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137480407 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.716, + "unit": "ns/op", + "extra": "137480407 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137480407 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137480407 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 67.22, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18128281 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 67.22, + "unit": "ns/op", + "extra": "18128281 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18128281 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18128281 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.73, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18090655 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.73, + "unit": "ns/op", + "extra": "18090655 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18090655 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18090655 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.944, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172988938 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.944, + "unit": "ns/op", + "extra": "172988938 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "172988938 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172988938 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 6.949, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172084790 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 6.949, + "unit": "ns/op", + "extra": "172084790 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "172084790 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172084790 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.71, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76409014 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.71, + "unit": "ns/op", + "extra": "76409014 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76409014 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76409014 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.66, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76541341 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.66, + "unit": "ns/op", + "extra": "76541341 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76541341 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76541341 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.99, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19299328 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.99, + "unit": "ns/op", + "extra": "19299328 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19299328 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19299328 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.98, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19325745 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.98, + "unit": "ns/op", + "extra": "19325745 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19325745 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19325745 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3148, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3148, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3134, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3134, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3148, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3148, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "9e86724600097f4697888c59d6507b25cec4bc3c", + "message": "fix(provider): Mark ClientID as deprecated, use correct one in examples. ", + "timestamp": "2025-05-29T11:00:09Z", + "url": "https://github.com/redis/go-redis-entraid/pull/8/commits/9e86724600097f4697888c59d6507b25cec4bc3c" + }, + "date": 1748532212586, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3247, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3247, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.16, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35927340 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.16, + "unit": "ns/op", + "extra": "35927340 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35927340 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35927340 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 35.52, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "34514864 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 35.52, + "unit": "ns/op", + "extra": "34514864 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "34514864 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "34514864 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.738, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321348879 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.738, + "unit": "ns/op", + "extra": "321348879 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321348879 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321348879 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320008338 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "320008338 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320008338 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320008338 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.875, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "173612556 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.875, + "unit": "ns/op", + "extra": "173612556 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "173612556 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "173612556 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.857, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175354602 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.857, + "unit": "ns/op", + "extra": "175354602 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175354602 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175354602 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.726, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137100703 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.726, + "unit": "ns/op", + "extra": "137100703 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137100703 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137100703 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.711, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137378450 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.711, + "unit": "ns/op", + "extra": "137378450 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137378450 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137378450 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.37, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "15868346 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.37, + "unit": "ns/op", + "extra": "15868346 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "15868346 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "15868346 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 65.02, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18591801 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 65.02, + "unit": "ns/op", + "extra": "18591801 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18591801 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18591801 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.011, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171004508 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.011, + "unit": "ns/op", + "extra": "171004508 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171004508 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171004508 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.019, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170889688 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.019, + "unit": "ns/op", + "extra": "170889688 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170889688 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170889688 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.67, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76619055 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.67, + "unit": "ns/op", + "extra": "76619055 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76619055 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76619055 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.68, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76391635 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.68, + "unit": "ns/op", + "extra": "76391635 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76391635 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76391635 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 62.17, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19402390 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 62.17, + "unit": "ns/op", + "extra": "19402390 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19402390 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19402390 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 62.01, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19355960 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 62.01, + "unit": "ns/op", + "extra": "19355960 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19355960 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19355960 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3135, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3135, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3182, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3182, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "07819447bc9c41ea4859c0434565224c8a309e16", + "message": "refactor(provider): Mark ClientID as deprecated, use correct one in examples. ", + "timestamp": "2025-05-29T11:00:09Z", + "url": "https://github.com/redis/go-redis-entraid/pull/8/commits/07819447bc9c41ea4859c0434565224c8a309e16" + }, + "date": 1748532571206, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3136, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3136, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3165, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3165, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3141, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3141, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.59, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36824316 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.59, + "unit": "ns/op", + "extra": "36824316 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36824316 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36824316 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.71, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35747505 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.71, + "unit": "ns/op", + "extra": "35747505 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35747505 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35747505 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.744, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321108104 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.744, + "unit": "ns/op", + "extra": "321108104 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321108104 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321108104 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.744, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "312326548 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.744, + "unit": "ns/op", + "extra": "312326548 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "312326548 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "312326548 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.897, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175007859 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.897, + "unit": "ns/op", + "extra": "175007859 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175007859 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175007859 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.851, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "168371184 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.851, + "unit": "ns/op", + "extra": "168371184 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "168371184 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "168371184 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 9.05, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "132793010 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 9.05, + "unit": "ns/op", + "extra": "132793010 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "132793010 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "132793010 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.947, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137561535 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.947, + "unit": "ns/op", + "extra": "137561535 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137561535 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137561535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 65.97, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "15895272 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 65.97, + "unit": "ns/op", + "extra": "15895272 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "15895272 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "15895272 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 65.41, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18697627 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 65.41, + "unit": "ns/op", + "extra": "18697627 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18697627 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18697627 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.021, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170931330 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.021, + "unit": "ns/op", + "extra": "170931330 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170931330 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170931330 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.023, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171580753 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.023, + "unit": "ns/op", + "extra": "171580753 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171580753 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171580753 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.71, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76070602 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.71, + "unit": "ns/op", + "extra": "76070602 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76070602 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76070602 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.67, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76716326 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.67, + "unit": "ns/op", + "extra": "76716326 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76716326 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76716326 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.97, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19433449 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.97, + "unit": "ns/op", + "extra": "19433449 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19433449 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19433449 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.97, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19378856 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.97, + "unit": "ns/op", + "extra": "19378856 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19378856 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19378856 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3108, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3108, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3109, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3109, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "06847a50ccae20690054ce843bc776242504fb19", + "message": "refactor(provider): Mark ClientID as deprecated, use correct one in examples. ", + "timestamp": "2025-05-29T11:00:09Z", + "url": "https://github.com/redis/go-redis-entraid/pull/8/commits/06847a50ccae20690054ce843bc776242504fb19" + }, + "date": 1748532868521, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3132, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3132, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3143, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3143, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 35.83, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36505509 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 35.83, + "unit": "ns/op", + "extra": "36505509 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36505509 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36505509 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.28, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35612457 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.28, + "unit": "ns/op", + "extra": "35612457 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35612457 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35612457 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320506276 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "320506276 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320506276 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320506276 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320666161 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "320666161 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320666161 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320666161 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.849, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174309757 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.849, + "unit": "ns/op", + "extra": "174309757 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174309757 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174309757 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.856, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174836406 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.856, + "unit": "ns/op", + "extra": "174836406 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174836406 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174836406 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137652008 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.735, + "unit": "ns/op", + "extra": "137652008 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137652008 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137652008 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.717, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137576707 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.717, + "unit": "ns/op", + "extra": "137576707 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137576707 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137576707 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.64, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16027622 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.64, + "unit": "ns/op", + "extra": "16027622 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16027622 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16027622 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.39, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16979634 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.39, + "unit": "ns/op", + "extra": "16979634 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16979634 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16979634 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.065, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170511800 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.065, + "unit": "ns/op", + "extra": "170511800 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170511800 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170511800 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.024, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170381666 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.024, + "unit": "ns/op", + "extra": "170381666 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170381666 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170381666 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.66, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "75018514 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.66, + "unit": "ns/op", + "extra": "75018514 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "75018514 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "75018514 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.79, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76480436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.79, + "unit": "ns/op", + "extra": "76480436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76480436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76480436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.98, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19329723 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.98, + "unit": "ns/op", + "extra": "19329723 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19329723 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19329723 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 62.22, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19233999 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 62.22, + "unit": "ns/op", + "extra": "19233999 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19233999 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19233999 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3132, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3132, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "email": "1547186+ndyakov@users.noreply.github.com", + "name": "Nedyalko Dyakov", + "username": "ndyakov" + }, + "committer": { + "email": "noreply@github.com", + "name": "GitHub", + "username": "web-flow" + }, + "distinct": true, + "id": "668586efc84f5ed18016d03cf3d5e2b82dae7467", + "message": "refactor(provider): Mark ClientID as deprecated, use correct one in examples. (#8)\n\n* test(example): Add minimal example for system assigned\n\n* test(examples): add system assigned type\n\n* fix(provider): fallback for clientId, mark the one in credentials provider as deprecated\n\n* fix(provider): remove deprecated clientID\n\n* chore(go.mod): go mod tidy on examples\n\n- go-redis-entraid will be replaced with current implementation anyway\n- the example runner (run_examples.sh) will update go-redis to the\n latest version", + "timestamp": "2025-05-30T12:37:56+03:00", + "tree_id": "dbfde5b1593d30aa364d512e4e7888bf4310685f", + "url": "https://github.com/redis/go-redis-entraid/commit/668586efc84f5ed18016d03cf3d5e2b82dae7467" + }, + "date": 1748597973188, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3125, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3125, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3127, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3127, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3215, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3215, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3138, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3138, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.22, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36394948 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.22, + "unit": "ns/op", + "extra": "36394948 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36394948 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36394948 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.4, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35520451 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.4, + "unit": "ns/op", + "extra": "35520451 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35520451 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35520451 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320717218 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "320717218 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320717218 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320717218 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "319296454 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "319296454 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "319296454 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "319296454 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.848, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174887832 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.848, + "unit": "ns/op", + "extra": "174887832 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174887832 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174887832 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.926, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175209542 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.926, + "unit": "ns/op", + "extra": "175209542 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175209542 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175209542 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.711, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137680968 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.711, + "unit": "ns/op", + "extra": "137680968 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137680968 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137680968 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137669397 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.737, + "unit": "ns/op", + "extra": "137669397 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137669397 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137669397 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.66, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17158618 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.66, + "unit": "ns/op", + "extra": "17158618 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17158618 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17158618 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.21, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18544966 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.21, + "unit": "ns/op", + "extra": "18544966 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18544966 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18544966 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.025, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170768013 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.025, + "unit": "ns/op", + "extra": "170768013 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170768013 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170768013 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.091, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170802157 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.091, + "unit": "ns/op", + "extra": "170802157 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170802157 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170802157 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.67, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76419944 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.67, + "unit": "ns/op", + "extra": "76419944 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76419944 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76419944 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.67, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76510640 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.67, + "unit": "ns/op", + "extra": "76510640 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76510640 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76510640 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 62.14, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19376180 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 62.14, + "unit": "ns/op", + "extra": "19376180 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19376180 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19376180 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 62.57, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19360372 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 62.57, + "unit": "ns/op", + "extra": "19360372 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19360372 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19360372 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3145, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3145, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3157, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3157, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3157, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3157, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.322, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.322, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "24c11e5cf2230aa04891ef53fb5d3e471878f44a", + "message": "chore(documentation): Add release notes, add todo", + "timestamp": "2025-05-30T09:37:59Z", + "url": "https://github.com/redis/go-redis-entraid/pull/9/commits/24c11e5cf2230aa04891ef53fb5d3e471878f44a" + }, + "date": 1748598563829, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3109, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3109, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 34, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36851040 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 34, + "unit": "ns/op", + "extra": "36851040 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36851040 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36851040 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.69, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35232908 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.69, + "unit": "ns/op", + "extra": "35232908 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35232908 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35232908 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.738, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320074863 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.738, + "unit": "ns/op", + "extra": "320074863 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320074863 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320074863 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.731, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "315915693 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.731, + "unit": "ns/op", + "extra": "315915693 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "315915693 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "315915693 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 7.135, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171443992 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 7.135, + "unit": "ns/op", + "extra": "171443992 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "171443992 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171443992 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.846, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174884264 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.846, + "unit": "ns/op", + "extra": "174884264 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174884264 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174884264 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.753, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137617820 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.753, + "unit": "ns/op", + "extra": "137617820 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137617820 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137617820 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.726, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137660935 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.726, + "unit": "ns/op", + "extra": "137660935 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137660935 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137660935 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 66.16, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16336773 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 66.16, + "unit": "ns/op", + "extra": "16336773 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16336773 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16336773 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 66.11, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18481412 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 66.11, + "unit": "ns/op", + "extra": "18481412 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18481412 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18481412 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.036, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170691644 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.036, + "unit": "ns/op", + "extra": "170691644 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170691644 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170691644 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.02, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170717202 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.02, + "unit": "ns/op", + "extra": "170717202 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170717202 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170717202 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.69, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76687572 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.69, + "unit": "ns/op", + "extra": "76687572 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76687572 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76687572 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.69, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76623116 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.69, + "unit": "ns/op", + "extra": "76623116 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76623116 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76623116 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.64, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19396430 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.64, + "unit": "ns/op", + "extra": "19396430 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19396430 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19396430 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.81, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19380337 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.81, + "unit": "ns/op", + "extra": "19380337 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19380337 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19380337 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3136, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3136, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3192, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3192, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "55bcdb4af5d07a865822492554d9870c12ed6593", + "message": "chore(documentation): Add release notes, add todo", + "timestamp": "2025-05-30T09:37:59Z", + "url": "https://github.com/redis/go-redis-entraid/pull/9/commits/55bcdb4af5d07a865822492554d9870c12ed6593" + }, + "date": 1748598627828, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.83, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36756032 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.83, + "unit": "ns/op", + "extra": "36756032 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36756032 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36756032 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 34.28, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "33427651 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 34.28, + "unit": "ns/op", + "extra": "33427651 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "33427651 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "33427651 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "319983955 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "319983955 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "319983955 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "319983955 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321355464 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "321355464 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321355464 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321355464 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.865, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174625082 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.865, + "unit": "ns/op", + "extra": "174625082 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174625082 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174625082 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.846, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175199901 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.846, + "unit": "ns/op", + "extra": "175199901 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175199901 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175199901 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.729, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137563491 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.729, + "unit": "ns/op", + "extra": "137563491 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137563491 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137563491 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.719, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137443213 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.719, + "unit": "ns/op", + "extra": "137443213 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137443213 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137443213 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.18, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16724080 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.18, + "unit": "ns/op", + "extra": "16724080 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16724080 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16724080 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.54, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18731480 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.54, + "unit": "ns/op", + "extra": "18731480 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18731480 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18731480 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.005, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170677470 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.005, + "unit": "ns/op", + "extra": "170677470 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170677470 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170677470 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.003, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171137023 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.003, + "unit": "ns/op", + "extra": "171137023 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171137023 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171137023 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.67, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "75876625 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.67, + "unit": "ns/op", + "extra": "75876625 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "75876625 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "75876625 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.81, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76032535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.81, + "unit": "ns/op", + "extra": "76032535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76032535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76032535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 62.36, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19378395 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 62.36, + "unit": "ns/op", + "extra": "19378395 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19378395 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19378395 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 61.98, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19249340 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 61.98, + "unit": "ns/op", + "extra": "19249340 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19249340 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19249340 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3129, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3129, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3151, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3151, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "email": "1547186+ndyakov@users.noreply.github.com", + "name": "Nedyalko Dyakov", + "username": "ndyakov" + }, + "committer": { + "email": "noreply@github.com", + "name": "GitHub", + "username": "web-flow" + }, + "distinct": true, + "id": "ab35b6a21def88ee9110828f7a93f19e2cdba9a4", + "message": "chore(documentation): Add release notes, add todo (#9)\n\n- add release notes for patch version\n- add todo to remove ClientID from CredentialsProviderOptions in v2", + "timestamp": "2025-05-30T13:04:37+03:00", + "tree_id": "82aa47b3447d7e5dac4f1d7af663793cc8bd60e8", + "url": "https://github.com/redis/go-redis-entraid/commit/ab35b6a21def88ee9110828f7a93f19e2cdba9a4" + }, + "date": 1748599557891, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3163, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3163, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3135, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3135, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3159, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3159, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3144, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3144, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.88, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36877812 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.88, + "unit": "ns/op", + "extra": "36877812 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36877812 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36877812 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.78, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "34242552 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.78, + "unit": "ns/op", + "extra": "34242552 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "34242552 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "34242552 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.733, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321304297 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.733, + "unit": "ns/op", + "extra": "321304297 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321304297 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321304297 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.921, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "311504647 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.921, + "unit": "ns/op", + "extra": "311504647 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "311504647 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "311504647 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.843, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172469760 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.843, + "unit": "ns/op", + "extra": "172469760 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "172469760 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172469760 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.844, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175184740 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.844, + "unit": "ns/op", + "extra": "175184740 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175184740 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175184740 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.716, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137621236 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.716, + "unit": "ns/op", + "extra": "137621236 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137621236 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137621236 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 8.716, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "137652410 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 8.716, + "unit": "ns/op", + "extra": "137652410 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "137652410 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "137652410 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.31, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16378953 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.31, + "unit": "ns/op", + "extra": "16378953 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16378953 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16378953 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.58, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18110979 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.58, + "unit": "ns/op", + "extra": "18110979 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18110979 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18110979 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.041, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170392618 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.041, + "unit": "ns/op", + "extra": "170392618 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170392618 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170392618 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.013, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170446512 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.013, + "unit": "ns/op", + "extra": "170446512 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170446512 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170446512 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.71, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76685758 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.71, + "unit": "ns/op", + "extra": "76685758 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76685758 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76685758 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.67, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76292552 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.67, + "unit": "ns/op", + "extra": "76292552 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76292552 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76292552 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 62.15, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19210774 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 62.15, + "unit": "ns/op", + "extra": "19210774 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19210774 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19210774 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 62.21, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19382281 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 62.21, + "unit": "ns/op", + "extra": "19382281 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19382281 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19382281 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 0.3143, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 0.3143, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3357, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3357, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "776abb71e93fa713743e8141c21139cfa5a9d123", + "message": "refactor(manager): small refactors around the manager and token logic", + "timestamp": "2025-05-30T10:07:08Z", + "url": "https://github.com/redis/go-redis-entraid/pull/10/commits/776abb71e93fa713743e8141c21139cfa5a9d123" + }, + "date": 1748623428173, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3134, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3134, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.313, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.313, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3148, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3148, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3127, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3127, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.88, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36642412 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.88, + "unit": "ns/op", + "extra": "36642412 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36642412 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36642412 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.85, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "34638148 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.85, + "unit": "ns/op", + "extra": "34638148 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "34638148 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "34638148 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.737, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321166726 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.737, + "unit": "ns/op", + "extra": "321166726 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321166726 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321166726 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320309890 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "320309890 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320309890 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320309890 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.949, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175242867 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.949, + "unit": "ns/op", + "extra": "175242867 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175242867 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175242867 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.845, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175152150 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.845, + "unit": "ns/op", + "extra": "175152150 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175152150 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175152150 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.89, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.89, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.85, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.85, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.98, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17878399 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.98, + "unit": "ns/op", + "extra": "17878399 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17878399 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17878399 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 63.07, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18416812 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 63.07, + "unit": "ns/op", + "extra": "18416812 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18416812 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18416812 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.24, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "165478630 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.24, + "unit": "ns/op", + "extra": "165478630 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "165478630 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "165478630 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.292, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "165612109 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.292, + "unit": "ns/op", + "extra": "165612109 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "165612109 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "165612109 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.73, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76150263 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.73, + "unit": "ns/op", + "extra": "76150263 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76150263 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76150263 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.78, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "75271210 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.78, + "unit": "ns/op", + "extra": "75271210 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "75271210 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "75271210 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.86, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19735413 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.86, + "unit": "ns/op", + "extra": "19735413 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19735413 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19735413 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.72, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19760180 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.72, + "unit": "ns/op", + "extra": "19760180 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19760180 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19760180 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.41, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "27080355 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.41, + "unit": "ns/op", + "extra": "27080355 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "27080355 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "27080355 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.41, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25545717 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.41, + "unit": "ns/op", + "extra": "25545717 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "25545717 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25545717 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 47.2, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25756887 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 47.2, + "unit": "ns/op", + "extra": "25756887 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25756887 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25756887 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 45.82, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25964500 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 45.82, + "unit": "ns/op", + "extra": "25964500 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25964500 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25964500 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "776abb71e93fa713743e8141c21139cfa5a9d123", + "message": "refactor(manager): small refactors around the manager and token logic", + "timestamp": "2025-05-30T10:07:08Z", + "url": "https://github.com/redis/go-redis-entraid/pull/10/commits/776abb71e93fa713743e8141c21139cfa5a9d123" + }, + "date": 1748681803723, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3134, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3134, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3224, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3224, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3268, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3268, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3141, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3141, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.76, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "34677783 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.76, + "unit": "ns/op", + "extra": "34677783 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "34677783 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "34677783 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.84, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "33225060 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.84, + "unit": "ns/op", + "extra": "33225060 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "33225060 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "33225060 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.734, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321086916 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.734, + "unit": "ns/op", + "extra": "321086916 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321086916 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321086916 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.833, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321219938 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.833, + "unit": "ns/op", + "extra": "321219938 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321219938 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321219938 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.848, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "172268727 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.848, + "unit": "ns/op", + "extra": "172268727 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "172268727 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "172268727 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.849, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175134865 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.849, + "unit": "ns/op", + "extra": "175134865 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175134865 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175134865 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.84, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.84, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.83, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.83, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 64.15, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16532445 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 64.15, + "unit": "ns/op", + "extra": "16532445 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16532445 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16532445 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 63.05, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19042026 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 63.05, + "unit": "ns/op", + "extra": "19042026 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "19042026 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19042026 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.251, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "165080406 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.251, + "unit": "ns/op", + "extra": "165080406 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "165080406 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "165080406 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.232, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "165144421 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.232, + "unit": "ns/op", + "extra": "165144421 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "165144421 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "165144421 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.75, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "75548167 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.75, + "unit": "ns/op", + "extra": "75548167 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "75548167 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "75548167 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.76, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76070202 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.76, + "unit": "ns/op", + "extra": "76070202 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76070202 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76070202 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.83, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19718716 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.83, + "unit": "ns/op", + "extra": "19718716 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19718716 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19718716 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.65, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19915077 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.65, + "unit": "ns/op", + "extra": "19915077 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19915077 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19915077 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.62, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "27440781 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.62, + "unit": "ns/op", + "extra": "27440781 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "27440781 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "27440781 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.6, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26640381 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.6, + "unit": "ns/op", + "extra": "26640381 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26640381 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26640381 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3145, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3145, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3224, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3224, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3132, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3132, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3127, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3127, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 45.68, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26101866 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 45.68, + "unit": "ns/op", + "extra": "26101866 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "26101866 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26101866 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 45.84, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26163574 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 45.84, + "unit": "ns/op", + "extra": "26163574 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "26163574 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26163574 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "790e68cc3d8cbb774664f5a5d59b9684b2847f97", + "message": "refactor(manager): small refactors around the manager and token logic", + "timestamp": "2025-05-30T10:07:08Z", + "url": "https://github.com/redis/go-redis-entraid/pull/10/commits/790e68cc3d8cbb774664f5a5d59b9684b2847f97" + }, + "date": 1748681942449, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3142, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3142, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3129, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3129, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.71, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36387343 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.71, + "unit": "ns/op", + "extra": "36387343 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36387343 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36387343 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.74, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "34928454 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.74, + "unit": "ns/op", + "extra": "34928454 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "34928454 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "34928454 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.758, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320443526 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.758, + "unit": "ns/op", + "extra": "320443526 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320443526 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320443526 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.738, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "315129373 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.738, + "unit": "ns/op", + "extra": "315129373 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "315129373 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "315129373 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 7.198, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175103708 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 7.198, + "unit": "ns/op", + "extra": "175103708 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175103708 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175103708 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.875, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175142122 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.875, + "unit": "ns/op", + "extra": "175142122 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175142122 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175142122 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.85, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.85, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 12.09, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 12.09, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 63.48, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19008337 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 63.48, + "unit": "ns/op", + "extra": "19008337 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "19008337 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19008337 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 63.36, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17215108 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 63.36, + "unit": "ns/op", + "extra": "17215108 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17215108 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17215108 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.281, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "165200228 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.281, + "unit": "ns/op", + "extra": "165200228 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "165200228 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "165200228 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.269, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "165438468 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.269, + "unit": "ns/op", + "extra": "165438468 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "165438468 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "165438468 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.84, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "75590893 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.84, + "unit": "ns/op", + "extra": "75590893 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "75590893 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "75590893 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.79, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "75901519 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.79, + "unit": "ns/op", + "extra": "75901519 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "75901519 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "75901519 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.64, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19726513 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.64, + "unit": "ns/op", + "extra": "19726513 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19726513 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19726513 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.67, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19678890 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.67, + "unit": "ns/op", + "extra": "19678890 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19678890 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19678890 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 45.14, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "27328848 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 45.14, + "unit": "ns/op", + "extra": "27328848 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "27328848 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "27328848 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.44, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "27209662 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.44, + "unit": "ns/op", + "extra": "27209662 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "27209662 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "27209662 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3132, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3132, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 46.06, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25498515 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 46.06, + "unit": "ns/op", + "extra": "25498515 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25498515 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25498515 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 45.75, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25953415 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 45.75, + "unit": "ns/op", + "extra": "25953415 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25953415 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25953415 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "d617d7b6e5f788dea35dd60999994184db36445b", + "message": "refactor(manager): small refactors around the manager and token logic", + "timestamp": "2025-05-30T10:07:08Z", + "url": "https://github.com/redis/go-redis-entraid/pull/10/commits/d617d7b6e5f788dea35dd60999994184db36445b" + }, + "date": 1748849823371, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3249, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3249, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3142, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3142, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3189, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3189, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 33.15, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36099753 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 33.15, + "unit": "ns/op", + "extra": "36099753 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36099753 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36099753 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 34.85, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35295703 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 34.85, + "unit": "ns/op", + "extra": "35295703 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35295703 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35295703 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.745, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "317118357 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.745, + "unit": "ns/op", + "extra": "317118357 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "317118357 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "317118357 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321604977 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "321604977 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321604977 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321604977 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.948, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "167487568 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.948, + "unit": "ns/op", + "extra": "167487568 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "167487568 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "167487568 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.843, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174561316 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.843, + "unit": "ns/op", + "extra": "174561316 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174561316 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174561316 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.87, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.87, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.87, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.87, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 63.71, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18930330 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 63.71, + "unit": "ns/op", + "extra": "18930330 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18930330 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18930330 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.44, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17607844 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.44, + "unit": "ns/op", + "extra": "17607844 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17607844 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17607844 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.255, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "165579276 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.255, + "unit": "ns/op", + "extra": "165579276 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "165579276 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "165579276 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.253, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "165473656 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.253, + "unit": "ns/op", + "extra": "165473656 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "165473656 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "165473656 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.03, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76019097 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.03, + "unit": "ns/op", + "extra": "76019097 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76019097 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76019097 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 15.75, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "76016732 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 15.75, + "unit": "ns/op", + "extra": "76016732 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "76016732 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "76016732 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.82, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19764457 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.82, + "unit": "ns/op", + "extra": "19764457 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19764457 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19764457 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.69, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19394018 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.69, + "unit": "ns/op", + "extra": "19394018 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19394018 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19394018 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.71, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "27213836 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.71, + "unit": "ns/op", + "extra": "27213836 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "27213836 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "27213836 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 45.3, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26312714 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 45.3, + "unit": "ns/op", + "extra": "26312714 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26312714 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26312714 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3134, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3134, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 46.11, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25193436 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 46.11, + "unit": "ns/op", + "extra": "25193436 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25193436 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25193436 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 46.17, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25662884 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 46.17, + "unit": "ns/op", + "extra": "25662884 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25662884 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25662884 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "email": "1547186+ndyakov@users.noreply.github.com", + "name": "Nedyalko Dyakov", + "username": "ndyakov" + }, + "committer": { + "email": "noreply@github.com", + "name": "GitHub", + "username": "web-flow" + }, + "distinct": true, + "id": "f3877956894aa11bf8ff682e8a54e2c80ac2e713", + "message": "refactor(manager): small refactors around the manager and token logic (#10)\n\n* fix(manager): Improve channel closure handling\n\n- Updated IsClosed function to accurately check if a channel is closed without consuming data unless necessary.\n- Safely close the closedChan only if it is not already closed to avoid potential panics.\n\n* fix(manager): Add panic recovery in token manager goroutine\n\n- Implemented panic recovery in the Start method of entraidTokenManager to prevent crashes and ensure listener is notified of errors.\n\n* fix(token): Enhance token creation logic and documentation\n\n- Updated the New function to return nil if expiresOn is zero to prevent panic.\n- Added logic to set receivedAt to the current time and recalculate TTL if receivedAt is zero.\n- Improved documentation to clarify the responsibilities of the caller regarding token validity and behavior when parameters are zero.\n\n* chore(token): remove some unnecessary comments\n\n* test(manager): change test delta to 5ms", + "timestamp": "2025-08-06T08:21:33+03:00", + "tree_id": "7dfab7bba1f78d38769bedeaa3664307a70f4003", + "url": "https://github.com/redis/go-redis-entraid/commit/f3877956894aa11bf8ff682e8a54e2c80ac2e713" + }, + "date": 1754457795063, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3171, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3171, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.624, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.624, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6244, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6244, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.313, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.313, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.38, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36362206 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.38, + "unit": "ns/op", + "extra": "36362206 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36362206 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36362206 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.47, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35760811 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.47, + "unit": "ns/op", + "extra": "35760811 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35760811 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35760811 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.76, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321049863 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.76, + "unit": "ns/op", + "extra": "321049863 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321049863 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321049863 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.739, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320206344 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.739, + "unit": "ns/op", + "extra": "320206344 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320206344 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320206344 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.854, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174773124 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.854, + "unit": "ns/op", + "extra": "174773124 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174773124 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174773124 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.842, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175361126 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.842, + "unit": "ns/op", + "extra": "175361126 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175361126 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175361126 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.82, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.82, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.85, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "99983601 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.85, + "unit": "ns/op", + "extra": "99983601 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "99983601 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "99983601 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.39, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18816825 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.39, + "unit": "ns/op", + "extra": "18816825 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18816825 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18816825 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.25, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17266948 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.25, + "unit": "ns/op", + "extra": "17266948 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17266948 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17266948 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.023, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171061335 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.023, + "unit": "ns/op", + "extra": "171061335 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "171061335 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171061335 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.028, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170957217 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.028, + "unit": "ns/op", + "extra": "170957217 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170957217 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170957217 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.2, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "73616750 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.2, + "unit": "ns/op", + "extra": "73616750 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "73616750 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "73616750 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.22, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "73071393 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.22, + "unit": "ns/op", + "extra": "73071393 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "73071393 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "73071393 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.87, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "20097436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.87, + "unit": "ns/op", + "extra": "20097436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "20097436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "20097436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.65, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "20040957 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.65, + "unit": "ns/op", + "extra": "20040957 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "20040957 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "20040957 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 46.67, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25880136 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 46.67, + "unit": "ns/op", + "extra": "25880136 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "25880136 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25880136 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 45.53, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26388534 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 45.53, + "unit": "ns/op", + "extra": "26388534 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26388534 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26388534 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3136, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3136, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6301, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6301, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6238, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6238, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 46.01, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25466298 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 46.01, + "unit": "ns/op", + "extra": "25466298 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25466298 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25466298 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 46.75, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25111633 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 46.75, + "unit": "ns/op", + "extra": "25111633 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25111633 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25111633 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "email": "1547186+ndyakov@users.noreply.github.com", + "name": "Nedyalko Dyakov", + "username": "ndyakov" + }, + "committer": { + "email": "noreply@github.com", + "name": "GitHub", + "username": "web-flow" + }, + "distinct": true, + "id": "f3877956894aa11bf8ff682e8a54e2c80ac2e713", + "message": "refactor(manager): small refactors around the manager and token logic (#10)\n\n* fix(manager): Improve channel closure handling\n\n- Updated IsClosed function to accurately check if a channel is closed without consuming data unless necessary.\n- Safely close the closedChan only if it is not already closed to avoid potential panics.\n\n* fix(manager): Add panic recovery in token manager goroutine\n\n- Implemented panic recovery in the Start method of entraidTokenManager to prevent crashes and ensure listener is notified of errors.\n\n* fix(token): Enhance token creation logic and documentation\n\n- Updated the New function to return nil if expiresOn is zero to prevent panic.\n- Added logic to set receivedAt to the current time and recalculate TTL if receivedAt is zero.\n- Improved documentation to clarify the responsibilities of the caller regarding token validity and behavior when parameters are zero.\n\n* chore(token): remove some unnecessary comments\n\n* test(manager): change test delta to 5ms", + "timestamp": "2025-08-06T08:21:33+03:00", + "tree_id": "7dfab7bba1f78d38769bedeaa3664307a70f4003", + "url": "https://github.com/redis/go-redis-entraid/commit/f3877956894aa11bf8ff682e8a54e2c80ac2e713" + }, + "date": 1754464952788, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3242, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3242, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6227, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6227, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3129, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3129, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3209, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3209, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.88, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37372488 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.88, + "unit": "ns/op", + "extra": "37372488 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37372488 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37372488 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.57, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36588045 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.57, + "unit": "ns/op", + "extra": "36588045 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36588045 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36588045 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.743, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321225286 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.743, + "unit": "ns/op", + "extra": "321225286 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321225286 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321225286 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.772, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321378680 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.772, + "unit": "ns/op", + "extra": "321378680 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321378680 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321378680 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.846, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174677685 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.846, + "unit": "ns/op", + "extra": "174677685 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174677685 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174677685 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.865, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175274085 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.865, + "unit": "ns/op", + "extra": "175274085 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175274085 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175274085 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.84, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "98833248 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.84, + "unit": "ns/op", + "extra": "98833248 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "98833248 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "98833248 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 12, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 12, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.43, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18358417 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.43, + "unit": "ns/op", + "extra": "18358417 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18358417 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18358417 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.36, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18830335 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.36, + "unit": "ns/op", + "extra": "18830335 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18830335 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18830335 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.009, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170916272 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.009, + "unit": "ns/op", + "extra": "170916272 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170916272 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170916272 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.005, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "170886688 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.005, + "unit": "ns/op", + "extra": "170886688 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "170886688 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "170886688 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.22, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71032400 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.22, + "unit": "ns/op", + "extra": "71032400 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71032400 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71032400 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.24, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "70490162 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.24, + "unit": "ns/op", + "extra": "70490162 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "70490162 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "70490162 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.66, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "20092011 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.66, + "unit": "ns/op", + "extra": "20092011 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "20092011 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "20092011 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.67, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "20125506 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.67, + "unit": "ns/op", + "extra": "20125506 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "20125506 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "20125506 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.93, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26355675 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.93, + "unit": "ns/op", + "extra": "26355675 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26355675 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26355675 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 46.17, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26055381 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 46.17, + "unit": "ns/op", + "extra": "26055381 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26055381 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26055381 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.623, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.623, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6228, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6228, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 46.71, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25046840 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 46.71, + "unit": "ns/op", + "extra": "25046840 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25046840 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25046840 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 46.46, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25476697 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 46.46, + "unit": "ns/op", + "extra": "25476697 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25476697 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25476697 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "68ba1dfa26d4fd9051adfccd82e5e4d32fdd12cd", + "message": "fix: don't hold lock when calling listeners", + "timestamp": "2025-08-06T05:21:37Z", + "url": "https://github.com/redis/go-redis-entraid/pull/12/commits/68ba1dfa26d4fd9051adfccd82e5e4d32fdd12cd" + }, + "date": 1757599826594, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3155, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3155, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.21, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37173194 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.21, + "unit": "ns/op", + "extra": "37173194 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37173194 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37173194 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.68, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36120812 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.68, + "unit": "ns/op", + "extra": "36120812 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36120812 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36120812 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "314404989 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "314404989 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "314404989 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "314404989 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.742, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321134916 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.742, + "unit": "ns/op", + "extra": "321134916 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321134916 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321134916 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.857, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175216792 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.857, + "unit": "ns/op", + "extra": "175216792 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175216792 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175216792 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.854, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174876933 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.854, + "unit": "ns/op", + "extra": "174876933 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174876933 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174876933 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.67, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.67, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.69, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.69, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.69, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17775338 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.69, + "unit": "ns/op", + "extra": "17775338 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17775338 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17775338 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.23, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19187535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.23, + "unit": "ns/op", + "extra": "19187535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "19187535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19187535 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.064, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169542098 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.064, + "unit": "ns/op", + "extra": "169542098 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169542098 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169542098 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.077, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169479762 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.077, + "unit": "ns/op", + "extra": "169479762 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169479762 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169479762 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71497893 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.7, + "unit": "ns/op", + "extra": "71497893 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71497893 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71497893 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.75, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71842172 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.75, + "unit": "ns/op", + "extra": "71842172 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71842172 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71842172 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.89, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19984537 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.89, + "unit": "ns/op", + "extra": "19984537 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19984537 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19984537 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.82, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "20062132 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.82, + "unit": "ns/op", + "extra": "20062132 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "20062132 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "20062132 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.94, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25955454 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.94, + "unit": "ns/op", + "extra": "25955454 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "25955454 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25955454 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.31, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25362099 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.31, + "unit": "ns/op", + "extra": "25362099 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "25362099 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25362099 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6231, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6231, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 47.64, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25192569 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 47.64, + "unit": "ns/op", + "extra": "25192569 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25192569 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25192569 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 48.01, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "24587487 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 48.01, + "unit": "ns/op", + "extra": "24587487 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "24587487 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "24587487 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "2d5f3a8ef6a37626d956a9a3f5c411e624b2c0b2", + "message": "fix: don't hold lock when calling listeners", + "timestamp": "2025-08-06T05:21:37Z", + "url": "https://github.com/redis/go-redis-entraid/pull/12/commits/2d5f3a8ef6a37626d956a9a3f5c411e624b2c0b2" + }, + "date": 1757600757723, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3284, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3284, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3127, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3127, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.16, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35529602 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.16, + "unit": "ns/op", + "extra": "35529602 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35529602 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35529602 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.34, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35816697 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.34, + "unit": "ns/op", + "extra": "35816697 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35816697 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35816697 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.776, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320906160 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.776, + "unit": "ns/op", + "extra": "320906160 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320906160 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320906160 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.75, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321344766 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.75, + "unit": "ns/op", + "extra": "321344766 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321344766 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321344766 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.844, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175146177 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.844, + "unit": "ns/op", + "extra": "175146177 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175146177 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175146177 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.854, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175360932 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.854, + "unit": "ns/op", + "extra": "175360932 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175360932 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175360932 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.54, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.54, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.52, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.12, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17756712 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.12, + "unit": "ns/op", + "extra": "17756712 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17756712 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17756712 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.05, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19325312 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.05, + "unit": "ns/op", + "extra": "19325312 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "19325312 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19325312 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.087, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169488237 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.087, + "unit": "ns/op", + "extra": "169488237 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169488237 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169488237 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.072, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169546993 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.072, + "unit": "ns/op", + "extra": "169546993 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169546993 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169546993 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.69, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71099659 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.69, + "unit": "ns/op", + "extra": "71099659 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71099659 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71099659 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.76, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "70581426 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.76, + "unit": "ns/op", + "extra": "70581426 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "70581426 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "70581426 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.02, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19904211 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.02, + "unit": "ns/op", + "extra": "19904211 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19904211 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19904211 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.14, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19968358 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.14, + "unit": "ns/op", + "extra": "19968358 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19968358 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19968358 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 47.64, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26951497 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 47.64, + "unit": "ns/op", + "extra": "26951497 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26951497 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26951497 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 45.25, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "23135412 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 45.25, + "unit": "ns/op", + "extra": "23135412 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "23135412 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "23135412 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3134, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3134, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3139, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3139, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3135, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3135, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3109, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3109, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.624, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.624, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6256, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6256, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 48.01, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "24091315 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 48.01, + "unit": "ns/op", + "extra": "24091315 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "24091315 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "24091315 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 47.9, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25005072 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 47.9, + "unit": "ns/op", + "extra": "25005072 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25005072 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25005072 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "3d101ad6b0f2e888104c3a85c1c88fb47c50c597", + "message": "fix: don't hold lock when calling listeners", + "timestamp": "2025-08-06T05:21:37Z", + "url": "https://github.com/redis/go-redis-entraid/pull/12/commits/3d101ad6b0f2e888104c3a85c1c88fb47c50c597" + }, + "date": 1757600805116, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3145, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3145, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.4, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "38546493 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.4, + "unit": "ns/op", + "extra": "38546493 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "38546493 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "38546493 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.32, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36060553 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.32, + "unit": "ns/op", + "extra": "36060553 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36060553 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36060553 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320962504 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "320962504 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320962504 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320962504 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.756, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321127627 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.756, + "unit": "ns/op", + "extra": "321127627 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321127627 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321127627 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.854, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175109154 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.854, + "unit": "ns/op", + "extra": "175109154 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175109154 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175109154 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.846, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174890598 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.846, + "unit": "ns/op", + "extra": "174890598 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174890598 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174890598 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.52, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.52, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.05, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17128371 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.05, + "unit": "ns/op", + "extra": "17128371 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17128371 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17128371 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 66.06, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19317244 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 66.06, + "unit": "ns/op", + "extra": "19317244 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "19317244 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19317244 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.106, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169403954 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.106, + "unit": "ns/op", + "extra": "169403954 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169403954 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169403954 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.074, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169800123 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.074, + "unit": "ns/op", + "extra": "169800123 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169800123 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169800123 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "70896333 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.7, + "unit": "ns/op", + "extra": "70896333 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "70896333 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "70896333 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.68, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71685897 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.68, + "unit": "ns/op", + "extra": "71685897 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71685897 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71685897 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19982688 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60, + "unit": "ns/op", + "extra": "19982688 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19982688 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19982688 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.92, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "20017855 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.92, + "unit": "ns/op", + "extra": "20017855 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "20017855 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "20017855 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 45.97, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "27028681 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 45.97, + "unit": "ns/op", + "extra": "27028681 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "27028681 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "27028681 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 45.24, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26879038 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 45.24, + "unit": "ns/op", + "extra": "26879038 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26879038 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26879038 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6297, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6297, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6227, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6227, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 47.9, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "24464917 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 47.9, + "unit": "ns/op", + "extra": "24464917 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "24464917 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "24464917 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 48.2, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "24205741 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 48.2, + "unit": "ns/op", + "extra": "24205741 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "24205741 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "24205741 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "a31a7184625aba4bd1c83ef038fbc80ae04a03cc", + "message": "fix: don't hold lock when calling listeners", + "timestamp": "2025-08-06T05:21:37Z", + "url": "https://github.com/redis/go-redis-entraid/pull/12/commits/a31a7184625aba4bd1c83ef038fbc80ae04a03cc" + }, + "date": 1757600966277, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3318, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3318, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3132, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3132, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3142, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3142, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3208, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3208, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.25, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37332536 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.25, + "unit": "ns/op", + "extra": "37332536 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37332536 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37332536 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.31, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35253230 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.31, + "unit": "ns/op", + "extra": "35253230 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35253230 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35253230 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.733, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "319989667 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.733, + "unit": "ns/op", + "extra": "319989667 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "319989667 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "319989667 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.755, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321066608 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.755, + "unit": "ns/op", + "extra": "321066608 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321066608 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321066608 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.847, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175040844 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.847, + "unit": "ns/op", + "extra": "175040844 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175040844 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175040844 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.846, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174874544 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.846, + "unit": "ns/op", + "extra": "174874544 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174874544 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174874544 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.52, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.52, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.15, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18347436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.15, + "unit": "ns/op", + "extra": "18347436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18347436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18347436 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.08, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17804119 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.08, + "unit": "ns/op", + "extra": "17804119 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17804119 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17804119 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.07, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169132825 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.07, + "unit": "ns/op", + "extra": "169132825 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169132825 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169132825 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.081, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169449520 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.081, + "unit": "ns/op", + "extra": "169449520 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169449520 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169449520 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.69, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71810551 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.69, + "unit": "ns/op", + "extra": "71810551 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71810551 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71810551 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.72, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "70679835 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.72, + "unit": "ns/op", + "extra": "70679835 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "70679835 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "70679835 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.95, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "20070720 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.95, + "unit": "ns/op", + "extra": "20070720 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "20070720 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "20070720 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.79, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "20034007 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.79, + "unit": "ns/op", + "extra": "20034007 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "20034007 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "20034007 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 45.88, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "27440343 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 45.88, + "unit": "ns/op", + "extra": "27440343 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "27440343 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "27440343 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 45.87, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26345055 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 45.87, + "unit": "ns/op", + "extra": "26345055 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26345055 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26345055 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3127, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3127, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6234, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6234, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 47.8, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "24410445 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 47.8, + "unit": "ns/op", + "extra": "24410445 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "24410445 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "24410445 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 47.97, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "24648351 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 47.97, + "unit": "ns/op", + "extra": "24648351 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "24648351 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "24648351 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "726f229ec000bdfa0d45e490e71b8153a0199487", + "message": "fix: don't hold lock when calling listeners", + "timestamp": "2025-08-06T05:21:37Z", + "url": "https://github.com/redis/go-redis-entraid/pull/12/commits/726f229ec000bdfa0d45e490e71b8153a0199487" + }, + "date": 1757601605561, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.313, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.313, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3139, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3139, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.18, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37766668 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.18, + "unit": "ns/op", + "extra": "37766668 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37766668 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37766668 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 31.81, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35708427 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 31.81, + "unit": "ns/op", + "extra": "35708427 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35708427 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35708427 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.776, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "319240300 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.776, + "unit": "ns/op", + "extra": "319240300 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "319240300 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "319240300 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320561302 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "320561302 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320561302 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320561302 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.842, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175171983 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.842, + "unit": "ns/op", + "extra": "175171983 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175171983 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175171983 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.855, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175208010 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.855, + "unit": "ns/op", + "extra": "175208010 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175208010 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175208010 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.52, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.52, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.43, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16707124 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.43, + "unit": "ns/op", + "extra": "16707124 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16707124 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16707124 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 61.95, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19320313 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 61.95, + "unit": "ns/op", + "extra": "19320313 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "19320313 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19320313 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.076, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169210106 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.076, + "unit": "ns/op", + "extra": "169210106 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169210106 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169210106 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.072, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169937707 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.072, + "unit": "ns/op", + "extra": "169937707 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169937707 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169937707 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.68, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71925572 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.68, + "unit": "ns/op", + "extra": "71925572 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71925572 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71925572 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.79, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71846146 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.79, + "unit": "ns/op", + "extra": "71846146 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71846146 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71846146 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.75, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "20046355 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.75, + "unit": "ns/op", + "extra": "20046355 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "20046355 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "20046355 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.92, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "20070168 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.92, + "unit": "ns/op", + "extra": "20070168 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "20070168 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "20070168 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.57, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26966323 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.57, + "unit": "ns/op", + "extra": "26966323 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26966323 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26966323 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.59, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26151436 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.59, + "unit": "ns/op", + "extra": "26151436 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26151436 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26151436 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3158, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3158, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6224, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6224, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.622, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.622, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 47.47, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "24473599 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 47.47, + "unit": "ns/op", + "extra": "24473599 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "24473599 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "24473599 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 48.81, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25070340 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 48.81, + "unit": "ns/op", + "extra": "25070340 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25070340 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25070340 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "email": "1547186+ndyakov@users.noreply.github.com", + "name": "Nedyalko Dyakov", + "username": "ndyakov" + }, + "committer": { + "email": "noreply@github.com", + "name": "GitHub", + "username": "web-flow" + }, + "distinct": true, + "id": "fe11795cf20865902f3b5803b76a1fc0e8c57f23", + "message": "fix: don't hold lock when calling listeners (#12)\n\n* don't hold lock when calling listeners\n\n* add tests\n\n* fix potential data race\n\n* fix potential deadlock in tests", + "timestamp": "2025-09-11T17:40:31+03:00", + "tree_id": "8a4dc23f3ed999a4a174a691cc76dad3bcf91a43", + "url": "https://github.com/redis/go-redis-entraid/commit/fe11795cf20865902f3b5803b76a1fc0e8c57f23" + }, + "date": 1757601747325, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3138, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3138, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3161, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3161, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3159, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3159, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.01, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "38162743 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.01, + "unit": "ns/op", + "extra": "38162743 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "38162743 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "38162743 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.35, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "34534886 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.35, + "unit": "ns/op", + "extra": "34534886 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "34534886 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "34534886 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.739, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321116372 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.739, + "unit": "ns/op", + "extra": "321116372 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321116372 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321116372 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.734, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321579494 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.734, + "unit": "ns/op", + "extra": "321579494 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321579494 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321579494 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.87, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175162634 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.87, + "unit": "ns/op", + "extra": "175162634 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175162634 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175162634 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.898, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174826804 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.898, + "unit": "ns/op", + "extra": "174826804 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174826804 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174826804 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.51, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.51, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.52, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.11, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17656482 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.11, + "unit": "ns/op", + "extra": "17656482 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17656482 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17656482 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.08, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19342806 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.08, + "unit": "ns/op", + "extra": "19342806 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "19342806 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19342806 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.071, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169226505 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.071, + "unit": "ns/op", + "extra": "169226505 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169226505 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169226505 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.087, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169205019 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.087, + "unit": "ns/op", + "extra": "169205019 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169205019 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169205019 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.72, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71762772 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.72, + "unit": "ns/op", + "extra": "71762772 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71762772 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71762772 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.71, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71213560 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.71, + "unit": "ns/op", + "extra": "71213560 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71213560 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71213560 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.02, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19967616 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.02, + "unit": "ns/op", + "extra": "19967616 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19967616 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19967616 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.06, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19957142 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.06, + "unit": "ns/op", + "extra": "19957142 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19957142 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19957142 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 46.4, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "27662636 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 46.4, + "unit": "ns/op", + "extra": "27662636 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "27662636 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "27662636 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 54.69, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25241088 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 54.69, + "unit": "ns/op", + "extra": "25241088 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "25241088 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25241088 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6358, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6358, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6241, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6241, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 48.08, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "23427099 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 48.08, + "unit": "ns/op", + "extra": "23427099 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "23427099 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "23427099 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 47.66, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25188254 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 47.66, + "unit": "ns/op", + "extra": "25188254 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25188254 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25188254 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "6484bef1881a3c546c4e3f9c9fdf000dc319f82a", + "message": "chore: update changelog", + "timestamp": "2025-09-11T14:40:35Z", + "url": "https://github.com/redis/go-redis-entraid/pull/13/commits/6484bef1881a3c546c4e3f9c9fdf000dc319f82a" + }, + "date": 1757602516019, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3209, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3209, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3148, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3148, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3827, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3827, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3215, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3215, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3161, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3161, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.4, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37532581 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.4, + "unit": "ns/op", + "extra": "37532581 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37532581 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37532581 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.34, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35685739 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.34, + "unit": "ns/op", + "extra": "35685739 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35685739 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35685739 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.745, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "318357727 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.745, + "unit": "ns/op", + "extra": "318357727 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "318357727 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "318357727 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321365079 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "321365079 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321365079 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321365079 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.858, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175136868 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.858, + "unit": "ns/op", + "extra": "175136868 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175136868 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175136868 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.855, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175047450 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.855, + "unit": "ns/op", + "extra": "175047450 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175047450 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175047450 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.52, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.52, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 63.3, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17180672 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 63.3, + "unit": "ns/op", + "extra": "17180672 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17180672 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17180672 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.29, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19296798 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.29, + "unit": "ns/op", + "extra": "19296798 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "19296798 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19296798 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.093, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169089604 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.093, + "unit": "ns/op", + "extra": "169089604 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169089604 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169089604 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.083, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169396141 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.083, + "unit": "ns/op", + "extra": "169396141 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169396141 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169396141 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "68537914 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.7, + "unit": "ns/op", + "extra": "68537914 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "68537914 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "68537914 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.74, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71690322 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.74, + "unit": "ns/op", + "extra": "71690322 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71690322 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71690322 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.91, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19938540 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.91, + "unit": "ns/op", + "extra": "19938540 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19938540 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19938540 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.97, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19963299 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.97, + "unit": "ns/op", + "extra": "19963299 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19963299 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19963299 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 45.68, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26955777 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 45.68, + "unit": "ns/op", + "extra": "26955777 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26955777 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26955777 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.46, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25998006 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.46, + "unit": "ns/op", + "extra": "25998006 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "25998006 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25998006 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3109, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3109, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3145, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3145, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.623, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.623, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6236, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6236, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 48.44, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25068950 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 48.44, + "unit": "ns/op", + "extra": "25068950 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25068950 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25068950 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 49.53, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "23851372 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 49.53, + "unit": "ns/op", + "extra": "23851372 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "23851372 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "23851372 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "b9ec40a079977a999130a776d92150642b82cdf3", + "message": "chore: update changelog", + "timestamp": "2025-09-11T14:40:35Z", + "url": "https://github.com/redis/go-redis-entraid/pull/13/commits/b9ec40a079977a999130a776d92150642b82cdf3" + }, + "date": 1757602557029, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.313, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.313, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3123, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3123, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.2, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35245189 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.2, + "unit": "ns/op", + "extra": "35245189 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35245189 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35245189 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.44, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35522370 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.44, + "unit": "ns/op", + "extra": "35522370 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35522370 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35522370 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.736, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321219062 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.736, + "unit": "ns/op", + "extra": "321219062 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321219062 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321219062 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.741, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321290485 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.741, + "unit": "ns/op", + "extra": "321290485 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321290485 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321290485 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.85, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174873711 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.85, + "unit": "ns/op", + "extra": "174873711 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174873711 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174873711 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.896, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175073772 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.896, + "unit": "ns/op", + "extra": "175073772 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175073772 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175073772 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.52, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "99160702 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.52, + "unit": "ns/op", + "extra": "99160702 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "99160702 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "99160702 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.49, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17433540 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.49, + "unit": "ns/op", + "extra": "17433540 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17433540 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17433540 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.27, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18218468 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.27, + "unit": "ns/op", + "extra": "18218468 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18218468 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18218468 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.091, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169311789 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.091, + "unit": "ns/op", + "extra": "169311789 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169311789 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169311789 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.092, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169386997 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.092, + "unit": "ns/op", + "extra": "169386997 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169386997 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169386997 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.75, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71778559 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.75, + "unit": "ns/op", + "extra": "71778559 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71778559 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71778559 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.73, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71429008 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.73, + "unit": "ns/op", + "extra": "71429008 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71429008 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71429008 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.86, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19982674 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.86, + "unit": "ns/op", + "extra": "19982674 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19982674 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19982674 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.91, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "20025130 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.91, + "unit": "ns/op", + "extra": "20025130 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "20025130 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "20025130 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 45.16, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "27483255 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 45.16, + "unit": "ns/op", + "extra": "27483255 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "27483255 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "27483255 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.38, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26276442 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.38, + "unit": "ns/op", + "extra": "26276442 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26276442 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26276442 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6236, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6236, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6247, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6247, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 48.62, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "24769352 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 48.62, + "unit": "ns/op", + "extra": "24769352 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "24769352 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "24769352 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 47.84, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "24852855 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 47.84, + "unit": "ns/op", + "extra": "24852855 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "24852855 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "24852855 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "030f62836baadd5298c266f0c58db41f78b11beb", + "message": "chore: update changelog", + "timestamp": "2025-09-11T14:40:35Z", + "url": "https://github.com/redis/go-redis-entraid/pull/13/commits/030f62836baadd5298c266f0c58db41f78b11beb" + }, + "date": 1757677695287, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3129, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3129, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.81, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "38075504 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.81, + "unit": "ns/op", + "extra": "38075504 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "38075504 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "38075504 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 46.37, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "22911780 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 46.37, + "unit": "ns/op", + "extra": "22911780 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "22911780 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "22911780 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.744, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320806028 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.744, + "unit": "ns/op", + "extra": "320806028 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320806028 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320806028 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.734, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320047843 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.734, + "unit": "ns/op", + "extra": "320047843 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320047843 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320047843 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.851, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175172652 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.851, + "unit": "ns/op", + "extra": "175172652 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175172652 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175172652 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.845, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175030723 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.845, + "unit": "ns/op", + "extra": "175030723 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175030723 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175030723 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.53, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.53, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.51, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.51, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.27, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "16706178 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.27, + "unit": "ns/op", + "extra": "16706178 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "16706178 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "16706178 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.01, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18788736 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.01, + "unit": "ns/op", + "extra": "18788736 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18788736 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18788736 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.099, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "168898726 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.099, + "unit": "ns/op", + "extra": "168898726 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "168898726 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "168898726 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "168673048 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.112, + "unit": "ns/op", + "extra": "168673048 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "168673048 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "168673048 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.87, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "61637498 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.87, + "unit": "ns/op", + "extra": "61637498 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "61637498 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "61637498 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.83, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "69750003 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.83, + "unit": "ns/op", + "extra": "69750003 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "69750003 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "69750003 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.43, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19962559 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.43, + "unit": "ns/op", + "extra": "19962559 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19962559 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19962559 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.06, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19127209 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.06, + "unit": "ns/op", + "extra": "19127209 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19127209 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19127209 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 43.99, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "27376575 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 43.99, + "unit": "ns/op", + "extra": "27376575 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "27376575 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "27376575 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.55, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26984864 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.55, + "unit": "ns/op", + "extra": "26984864 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26984864 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26984864 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6223, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6223, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6229, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6229, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 47.87, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "24630408 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 47.87, + "unit": "ns/op", + "extra": "24630408 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "24630408 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "24630408 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 47.58, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25170777 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 47.58, + "unit": "ns/op", + "extra": "25170777 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25170777 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25170777 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "email": "1547186+ndyakov@users.noreply.github.com", + "name": "Nedyalko Dyakov", + "username": "ndyakov" + }, + "committer": { + "email": "noreply@github.com", + "name": "GitHub", + "username": "web-flow" + }, + "distinct": true, + "id": "8ee48a274978bf86ffa64ad8bae712f6526c63f9", + "message": "chore: update changelog (#13)\n\n* chore: update changelog\n\n* chore: update date", + "timestamp": "2025-09-12T14:50:29+03:00", + "tree_id": "a337af258c448ab56ae2135755f3a2571878d0ed", + "url": "https://github.com/redis/go-redis-entraid/commit/8ee48a274978bf86ffa64ad8bae712f6526c63f9" + }, + "date": 1757677945719, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3146, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3146, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3111, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3111, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.17, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37672644 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.17, + "unit": "ns/op", + "extra": "37672644 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37672644 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37672644 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.26, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35547609 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.26, + "unit": "ns/op", + "extra": "35547609 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35547609 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35547609 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.732, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321388509 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.732, + "unit": "ns/op", + "extra": "321388509 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321388509 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321388509 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.733, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321451063 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.733, + "unit": "ns/op", + "extra": "321451063 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321451063 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321451063 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.891, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "173820115 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.891, + "unit": "ns/op", + "extra": "173820115 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "173820115 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "173820115 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.85, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174818781 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.85, + "unit": "ns/op", + "extra": "174818781 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174818781 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174818781 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.51, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.51, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.51, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.51, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.17, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18055921 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.17, + "unit": "ns/op", + "extra": "18055921 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18055921 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18055921 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.09, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19321086 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.09, + "unit": "ns/op", + "extra": "19321086 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "19321086 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19321086 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.079, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169523703 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.079, + "unit": "ns/op", + "extra": "169523703 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169523703 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169523703 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.132, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169267830 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.132, + "unit": "ns/op", + "extra": "169267830 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169267830 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169267830 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71814546 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.7, + "unit": "ns/op", + "extra": "71814546 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71814546 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71814546 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.69, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "70632662 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.69, + "unit": "ns/op", + "extra": "70632662 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "70632662 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "70632662 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.92, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19981196 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.92, + "unit": "ns/op", + "extra": "19981196 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19981196 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19981196 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.81, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "20089692 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.81, + "unit": "ns/op", + "extra": "20089692 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "20089692 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "20089692 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 46.61, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26090859 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 46.61, + "unit": "ns/op", + "extra": "26090859 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26090859 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26090859 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.86, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26815406 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.86, + "unit": "ns/op", + "extra": "26815406 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26815406 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26815406 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3124, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.6338, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.6338, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.624, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.624, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 47.85, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "24264067 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 47.85, + "unit": "ns/op", + "extra": "24264067 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "24264067 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "24264067 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 47.98, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "24078140 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 47.98, + "unit": "ns/op", + "extra": "24078140 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "24078140 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "24078140 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "ff6e5396d33b0f9bc91daa878230635007e6065a", + "message": "(wip): add example tests instead of applications", + "timestamp": "2025-09-12T11:50:33Z", + "url": "https://github.com/redis/go-redis-entraid/pull/14/commits/ff6e5396d33b0f9bc91daa878230635007e6065a" + }, + "date": 1760697407561, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3192, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3192, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.315, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.315, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6243, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6243, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6221, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6221, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3113, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3113, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.71, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37983710 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.71, + "unit": "ns/op", + "extra": "37983710 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37983710 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37983710 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.74, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35259154 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.74, + "unit": "ns/op", + "extra": "35259154 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35259154 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35259154 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.74, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "320855503 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.74, + "unit": "ns/op", + "extra": "320855503 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "320855503 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "320855503 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.762, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321483900 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.762, + "unit": "ns/op", + "extra": "321483900 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321483900 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321483900 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.852, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "171750441 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.852, + "unit": "ns/op", + "extra": "171750441 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "171750441 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "171750441 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.849, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175091193 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.849, + "unit": "ns/op", + "extra": "175091193 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175091193 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175091193 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.53, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.53, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.52, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.28, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18146200 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.28, + "unit": "ns/op", + "extra": "18146200 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18146200 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18146200 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.04, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "18478544 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.04, + "unit": "ns/op", + "extra": "18478544 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "18478544 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "18478544 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.103, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169597506 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.103, + "unit": "ns/op", + "extra": "169597506 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169597506 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169597506 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.088, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169160474 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.088, + "unit": "ns/op", + "extra": "169160474 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169160474 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169160474 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.64, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71442982 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.64, + "unit": "ns/op", + "extra": "71442982 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71442982 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71442982 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.7, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71520338 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.7, + "unit": "ns/op", + "extra": "71520338 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71520338 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71520338 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.06, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19948512 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.06, + "unit": "ns/op", + "extra": "19948512 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19948512 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19948512 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.83, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19999712 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.83, + "unit": "ns/op", + "extra": "19999712 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19999712 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19999712 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.85, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "27515968 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.85, + "unit": "ns/op", + "extra": "27515968 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "27515968 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "27515968 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 46.29, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26214124 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 46.29, + "unit": "ns/op", + "extra": "26214124 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26214124 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26214124 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3131, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3131, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3133, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3133, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3121, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3121, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3162, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3162, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 45.98, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25884526 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 45.98, + "unit": "ns/op", + "extra": "25884526 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25884526 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25884526 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 45.96, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25025880 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 45.96, + "unit": "ns/op", + "extra": "25025880 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25025880 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25025880 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "name": "redis", + "username": "redis" + }, + "committer": { + "name": "redis", + "username": "redis" + }, + "id": "32d9e6866a971baa9b64355a7a21f96fa777168a", + "message": "(wip): add example tests instead of applications", + "timestamp": "2025-09-12T11:50:33Z", + "url": "https://github.com/redis/go-redis-entraid/pull/14/commits/32d9e6866a971baa9b64355a7a21f96fa777168a" + }, + "date": 1760697729347, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3208, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3208, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.627, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.627, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6237, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6237, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.312, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.312, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3116, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3116, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3154, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3154, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.63, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35187993 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.63, + "unit": "ns/op", + "extra": "35187993 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35187993 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35187993 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.61, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "35538223 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.61, + "unit": "ns/op", + "extra": "35538223 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "35538223 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "35538223 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.735, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321041505 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.735, + "unit": "ns/op", + "extra": "321041505 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321041505 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321041505 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.771, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321037322 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.771, + "unit": "ns/op", + "extra": "321037322 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321037322 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321037322 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 7.002, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "174777248 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 7.002, + "unit": "ns/op", + "extra": "174777248 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "174777248 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "174777248 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.851, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175370797 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.851, + "unit": "ns/op", + "extra": "175370797 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175370797 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175370797 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.54, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.54, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.52, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.4, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17002191 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.4, + "unit": "ns/op", + "extra": "17002191 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17002191 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17002191 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 63.83, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19278536 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 63.83, + "unit": "ns/op", + "extra": "19278536 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "19278536 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19278536 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.124, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "168835545 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.124, + "unit": "ns/op", + "extra": "168835545 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "168835545 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "168835545 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.095, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169132333 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.095, + "unit": "ns/op", + "extra": "169132333 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169132333 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169132333 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.66, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71294689 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.66, + "unit": "ns/op", + "extra": "71294689 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71294689 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71294689 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.69, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71117238 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.69, + "unit": "ns/op", + "extra": "71117238 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71117238 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71117238 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.87, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19988636 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.87, + "unit": "ns/op", + "extra": "19988636 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19988636 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19988636 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 60.01, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19991167 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 60.01, + "unit": "ns/op", + "extra": "19991167 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "19991167 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19991167 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.16, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "28032237 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.16, + "unit": "ns/op", + "extra": "28032237 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "28032237 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "28032237 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 45.92, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26210829 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 45.92, + "unit": "ns/op", + "extra": "26210829 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26210829 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26210829 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.311, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.311, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3135, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3135, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 45.5, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26624772 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 45.5, + "unit": "ns/op", + "extra": "26624772 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "26624772 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26624772 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 45.58, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25650720 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 45.58, + "unit": "ns/op", + "extra": "25650720 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25650720 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25650720 times\n4 procs" + } + ] + }, + { + "commit": { + "author": { + "email": "1547186+ndyakov@users.noreply.github.com", + "name": "Nedyalko Dyakov", + "username": "ndyakov" + }, + "committer": { + "email": "noreply@github.com", + "name": "GitHub", + "username": "web-flow" + }, + "distinct": true, + "id": "c47ffe875c76258a6e1b7d3e5aff227c2c454f5a", + "message": "tests(integration): add example tests instead of applications (#14)\n\n* add example tests instead of applications\n\n* exclude example tests in ci", + "timestamp": "2025-10-17T13:57:58+03:00", + "tree_id": "267f740942948408e57e986d8a63bda69f70a2fb", + "url": "https://github.com/redis/go-redis-entraid/commit/c47ffe875c76258a6e1b7d3e5aff227c2c454f5a" + }, + "date": 1760698800403, + "tool": "go", + "benches": [ + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3128, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3128, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type", + "value": 0.3126, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - ns/op", + "value": 0.3126, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_Type - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6234, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6234, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult", + "value": 0.6226, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - ns/op", + "value": 0.6226, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AuthResult - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3117, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3117, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken", + "value": 0.3122, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - ns/op", + "value": 0.3122, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_AccessToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken", + "value": 0.3112, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - ns/op", + "value": 0.3112, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkIDPResp_RawToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.35, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "37796683 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.35, + "unit": "ns/op", + "extra": "37796683 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "37796683 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "37796683 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp", + "value": 32.44, + "unit": "ns/op\t 48 B/op\t 1 allocs/op", + "extra": "36564301 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - ns/op", + "value": 32.44, + "unit": "ns/op", + "extra": "36564301 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - B/op", + "value": 48, + "unit": "B/op", + "extra": "36564301 times\n4 procs" + }, + { + "name": "BenchmarkNewIDPResp - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "36564301 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.769, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "321014257 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.769, + "unit": "ns/op", + "extra": "321014257 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "321014257 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "321014257 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel", + "value": 3.753, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "312153784 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - ns/op", + "value": 3.753, + "unit": "ns/op", + "extra": "312153784 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "312153784 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithNilChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "312153784 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.852, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175243664 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.852, + "unit": "ns/op", + "extra": "175243664 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175243664 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175243664 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel", + "value": 6.88, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "175318608 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - ns/op", + "value": 6.88, + "unit": "ns/op", + "extra": "175318608 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "175318608 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithEmptyChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "175318608 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.53, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.53, + "unit": "ns/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "100000000 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel", + "value": 11.57, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "103429582 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - ns/op", + "value": 11.57, + "unit": "ns/op", + "extra": "103429582 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - B/op", + "value": 0, + "unit": "B/op", + "extra": "103429582 times\n4 procs" + }, + { + "name": "BenchmarkIsClosedWithClosedChannel - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "103429582 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.11, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "19173516 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.11, + "unit": "ns/op", + "extra": "19173516 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "19173516 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "19173516 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken", + "value": 62.52, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "17129701 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - ns/op", + "value": 62.52, + "unit": "ns/op", + "extra": "17129701 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - B/op", + "value": 0, + "unit": "B/op", + "extra": "17129701 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_GetToken - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "17129701 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169328252 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.115, + "unit": "ns/op", + "extra": "169328252 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169328252 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169328252 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start", + "value": 7.101, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "169191199 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - ns/op", + "value": 7.101, + "unit": "ns/op", + "extra": "169191199 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - B/op", + "value": 0, + "unit": "B/op", + "extra": "169191199 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Start - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "169191199 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.67, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "72088680 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.67, + "unit": "ns/op", + "extra": "72088680 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "72088680 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "72088680 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close", + "value": 16.65, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "71917407 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - ns/op", + "value": 16.65, + "unit": "ns/op", + "extra": "71917407 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - B/op", + "value": 0, + "unit": "B/op", + "extra": "71917407 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_Close - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "71917407 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.77, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "20053264 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.77, + "unit": "ns/op", + "extra": "20053264 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "20053264 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "20053264 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal", + "value": 59.75, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "20016348 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - ns/op", + "value": 59.75, + "unit": "ns/op", + "extra": "20016348 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - B/op", + "value": 0, + "unit": "B/op", + "extra": "20016348 times\n4 procs" + }, + { + "name": "BenchmarkTokenManager_durationToRenewal - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "20016348 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 45.59, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "26815424 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 45.59, + "unit": "ns/op", + "extra": "26815424 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "26815424 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "26815424 times\n4 procs" + }, + { + "name": "BenchmarkNew", + "value": 44.51, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25818835 times\n4 procs" + }, + { + "name": "BenchmarkNew - ns/op", + "value": 44.51, + "unit": "ns/op", + "extra": "25818835 times\n4 procs" + }, + { + "name": "BenchmarkNew - B/op", + "value": 112, + "unit": "B/op", + "extra": "25818835 times\n4 procs" + }, + { + "name": "BenchmarkNew - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25818835 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3118, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3118, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkBasicAuth - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3115, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3115, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials", + "value": 0.3114, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - ns/op", + "value": 0.3114, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkRawCredentials - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn", + "value": 0.3119, + "unit": "ns/op\t 0 B/op\t 0 allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - ns/op", + "value": 0.3119, + "unit": "ns/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - B/op", + "value": 0, + "unit": "B/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkExpirationOn - allocs/op", + "value": 0, + "unit": "allocs/op", + "extra": "1000000000 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 45.93, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25094767 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 45.93, + "unit": "ns/op", + "extra": "25094767 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25094767 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25094767 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken", + "value": 45.93, + "unit": "ns/op\t 112 B/op\t 1 allocs/op", + "extra": "25678388 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - ns/op", + "value": 45.93, + "unit": "ns/op", + "extra": "25678388 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - B/op", + "value": 112, + "unit": "B/op", + "extra": "25678388 times\n4 procs" + }, + { + "name": "BenchmarkCopyToken - allocs/op", + "value": 1, + "unit": "allocs/op", + "extra": "25678388 times\n4 procs" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/dev/bench/index.html b/dev/bench/index.html new file mode 100644 index 0000000..6c88780 --- /dev/null +++ b/dev/bench/index.html @@ -0,0 +1,281 @@ + + + + + + + Benchmarks + + + + +
+ + + + + + + diff --git a/entraid.go b/entraid.go deleted file mode 100644 index 6eb0625..0000000 --- a/entraid.go +++ /dev/null @@ -1,12 +0,0 @@ -package entraid - -import "github.com/redis/go-redis-entraid/shared" - -// IdentityProvider is an alias for the shared.IdentityProvider interface. -type IdentityProvider = shared.IdentityProvider - -// IdentityProviderResponse is an alias for the shared.IdentityProviderResponse interface. -type IdentityProviderResponse = shared.IdentityProviderResponse - -// IdentityProviderResponseParser is an alias for the shared.IdentityProviderResponseParser interface. -type IdentityProviderResponseParser = shared.IdentityProviderResponseParser diff --git a/entraid_test.go b/entraid_test.go deleted file mode 100644 index 1e1dfa7..0000000 --- a/entraid_test.go +++ /dev/null @@ -1,212 +0,0 @@ -package entraid - -import ( - "errors" - "flag" - "sync" - "testing" - "time" - - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis-entraid/shared" - "github.com/redis/go-redis-entraid/token" - "github.com/redis/go-redis/v9/auth" - "github.com/stretchr/testify/mock" -) - -// fakeTokenManager implements the TokenManager interface for testing -type fakeTokenManager struct { - token *token.Token - err error - lock sync.Mutex -} - -const rawTokenString = "mock-token" - -// numListeners is set to 3 for short tests and 12 for long tests -var numListeners = 12 - -// tokenExpiration is set to 100ms for long tests and 10ms for short tests -var tokenExpiration = 100 * time.Millisecond - -func init() { - testing.Init() - flag.Parse() - tokenExpiration = 100 * time.Millisecond - numListeners = 12 - if testing.Short() { - tokenExpiration = 10 * time.Millisecond - numListeners = 3 - } -} - -func (m *fakeTokenManager) GetToken(forceRefresh bool) (*token.Token, error) { - if forceRefresh { - m.token = token.New( - "test", - "test", - rawTokenString, - time.Now().Add(tokenExpiration), - time.Now(), - tokenExpiration.Milliseconds(), - ) - } - return m.token, m.err -} - -func (m *fakeTokenManager) Start(listener manager.TokenListener) (manager.StopFunc, error) { - if m.err != nil { - return nil, m.err - } - done := make(chan struct{}) - go func() { - for { - select { - case <-time.After(tokenExpiration): - m.lock.Lock() - if m.err != nil { - listener.OnError(m.err) - return - } - listener.OnNext(m.token) - m.lock.Unlock() - case <-done: - // Exit the loop if done channel is closed - return - - } - } - }() - - return func() error { - close(done) - return nil - }, nil -} - -func (m *fakeTokenManager) stop() error { - return nil -} - -// mockCredentialsListener implements the CredentialsListener interface for testing -type mockCredentialsListener struct { - LastTokenCh chan string - LastErrCh chan error -} - -func (m *mockCredentialsListener) readWithTimeout(timeout time.Duration) (string, error) { - select { - case tk := <-m.LastTokenCh: - return tk, nil - case err := <-m.LastErrCh: - return "", err - case <-time.After(timeout): - return "", errors.New("timeout waiting for token") - } -} - -func (m *mockCredentialsListener) OnNext(credentials auth.Credentials) { - if m.LastTokenCh == nil { - m.LastTokenCh = make(chan string) - } - m.LastTokenCh <- credentials.RawCredentials() -} - -func (m *mockCredentialsListener) OnError(err error) { - if m.LastErrCh == nil { - m.LastErrCh = make(chan error) - } - m.LastErrCh <- err -} - -// testFakeTokenManagerFactory is a factory function that returns a mock token manager -func testFakeTokenManagerFactory(tk *token.Token, err error) func(shared.IdentityProvider, manager.TokenManagerOptions) (manager.TokenManager, error) { - return func(provider shared.IdentityProvider, options manager.TokenManagerOptions) (manager.TokenManager, error) { - return &fakeTokenManager{ - token: tk, - err: err, - }, nil - } -} - -// mockTokenManager is a mock implementation of the TokenManager interface -type mockTokenManager struct { - mock.Mock - idp shared.IdentityProvider - done chan struct{} - options manager.TokenManagerOptions - listener manager.TokenListener - lock *sync.Mutex -} - -func (m *mockTokenManager) GetToken(forceRefresh bool) (*token.Token, error) { - args := m.Called(forceRefresh) - if args.Get(0) == nil { - return nil, args.Error(1) - } - return args.Get(0).(*token.Token), args.Error(1) -} - -func (m *mockTokenManager) Start(listener manager.TokenListener) (manager.StopFunc, error) { - args := m.Called(listener) - m.lock.Lock() - if m.done == nil { - m.done = make(chan struct{}) - } - if m.listener != nil { - defer m.lock.Unlock() - return nil, manager.ErrTokenManagerAlreadyStarted - } - if m.listener == nil { - m.listener = listener - } - m.lock.Unlock() - return args.Get(0).(manager.StopFunc), args.Error(1) -} -func (m *mockTokenManager) stop() error { - m.lock.Lock() - defer m.lock.Unlock() - if m.listener == nil { - return manager.ErrTokenManagerAlreadyStopped - } - if m.listener != nil { - m.listener = nil - } - if m.done != nil { - close(m.done) - } - return nil -} - -// mockTokenManagerFactory is a factory function that returns a mock token manager -func mockTokenManagerFactory(mtm *mockTokenManager) func(shared.IdentityProvider, manager.TokenManagerOptions) (manager.TokenManager, error) { - return func(provider shared.IdentityProvider, options manager.TokenManagerOptions) (manager.TokenManager, error) { - mtm.idp = provider - mtm.options = options - return mtm, nil - } -} - -var errTokenError = errors.New("token error") - -func mockTokenManagerLoop(mtm *mockTokenManager, tokenExpiration time.Duration, testToken *token.Token, err error) func(args mock.Arguments) { - return func(args mock.Arguments) { - go func() { - for { - select { - case <-mtm.done: - mtm.done = nil - return - case <-time.After(tokenExpiration): - mtm.lock.Lock() - if err != nil { - mtm.listener.OnError(err) - } else { - mtm.listener.OnNext(testToken) - } - mtm.lock.Unlock() - } - } - }() - } -} diff --git a/examples/custom_idp/go.mod b/examples/custom_idp/go.mod deleted file mode 100644 index 59d008f..0000000 --- a/examples/custom_idp/go.mod +++ /dev/null @@ -1,25 +0,0 @@ -module custom_example - -go 1.23.4 - -require ( - github.com/redis/go-redis-entraid v1.0.1 - github.com/redis/go-redis/v9 v9.9.0 -) - -require ( - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect - github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/golang-jwt/jwt/v5 v5.2.2 // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect - github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect - golang.org/x/crypto v0.38.0 // indirect - golang.org/x/net v0.40.0 // indirect - golang.org/x/sys v0.33.0 // indirect - golang.org/x/text v0.25.0 // indirect -) diff --git a/examples/custom_idp/go.sum b/examples/custom_idp/go.sum deleted file mode 100644 index d2e3864..0000000 --- a/examples/custom_idp/go.sum +++ /dev/null @@ -1,53 +0,0 @@ -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0 h1:j8BorDEigD8UFOSZQiSqAMOOleyQOOQPnUAwV+Ls1gA= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0/go.mod h1:JdM5psgjfBf5fo2uWOZhflPWyDBZ/O/CNAH9CtsuZE4= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= -github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= -github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= -github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= -github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= -github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU= -github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/redis/go-redis-entraid v1.0.1 h1:Q2gxpSRFLn+KyZuPrF7zDUCQ9iISoUxqzaCjxPqJKQI= -github.com/redis/go-redis-entraid v1.0.1/go.mod h1:OS6s3V1DdSRzOJEIjpK38/w4chZpl/Sy+1pzby+6nEk= -github.com/redis/go-redis/v9 v9.9.0 h1:URbPQ4xVQSQhZ27WMQVmZSo3uT3pL+4IdHVcYq2nVfM= -github.com/redis/go-redis/v9 v9.9.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= -golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/examples/custom_idp/main.go b/examples/custom_idp/main.go deleted file mode 100644 index 03c0086..0000000 --- a/examples/custom_idp/main.go +++ /dev/null @@ -1,104 +0,0 @@ -package main - -import ( - "context" - "fmt" - "strconv" - "strings" - "time" - - entraid "github.com/redis/go-redis-entraid" - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis-entraid/shared" - "github.com/redis/go-redis-entraid/token" - redis "github.com/redis/go-redis/v9" -) - -func main() { - ctx := context.Background() - idp := NewFakeIdentityProvider("local", "pass") - parser := &fakeIdentityProviderResponseParser{} - // create token manager - - tm, err := manager.NewTokenManager(idp, manager.TokenManagerOptions{ - IdentityProviderResponseParser: parser, - }) - - cp, err := entraid.NewCredentialsProvider(tm, entraid.CredentialsProviderOptions{}) - if err != nil { - panic(err) - } - - client := redis.NewClient(&redis.Options{ - Addr: ":6379", - StreamingCredentialsProvider: cp, - }) - - ok, err := client.Ping(ctx).Result() - if err != nil { - panic(err) - } - fmt.Println("Ping result:", ok) -} - -var _ entraid.IdentityProvider = (*FakeIdentityProvider)(nil) - -type FakeIdentityProvider struct { - username string - password string -} - -// RequestToken simulates a request to an identity provider and returns a fake token. -// In a real implementation, this would involve making a network request to the identity provider. -func (f *FakeIdentityProvider) RequestToken(_ context.Context) (entraid.IdentityProviderResponse, error) { - // Simulate a successful token request - return shared.NewIDPResponse( - shared.ResponseTypeRawToken, - fmt.Sprintf("%s:%s:%d", f.username, f.password, time.Now().Add(1*time.Hour).Unix()), - ) -} - -// NewFakeIdentityProvider creates a new instance of FakeIdentityProvider with the given username and password. -func NewFakeIdentityProvider(username, password string) *FakeIdentityProvider { - return &FakeIdentityProvider{ - username: username, - password: password, - } -} - -type fakeIdentityProviderResponseParser struct { -} - -// ParseResponse simulates the parsing of a response from an identity provider. -func (f *fakeIdentityProviderResponseParser) ParseResponse(response entraid.IdentityProviderResponse) (*token.Token, error) { - if response.Type() == shared.ResponseTypeRawToken { - rawToken, err := response.RawToken() - if err != nil { - return nil, fmt.Errorf("failed to get raw token: %w", err) - } - username, password := "", "" - var expiresOnUnix int64 - - // parse the raw token string - // assuming the format is "username:password:expiresOnUnix" - // where expiresOnUnix is a unix timestamp - parts := strings.Split(rawToken, ":") - if len(parts) != 3 { - return nil, fmt.Errorf("invalid raw token format") - } - username = parts[0] - password = parts[1] - expiresOnUnix, err = strconv.ParseInt(parts[2], 10, 64) - if err != nil { - return nil, fmt.Errorf("failed to parse raw token: %w", err) - } - - // convert the unix timestamp to time.Time - expiresOn := time.Unix(expiresOnUnix, 0) - now := time.Now() - return token.New(username, password, rawToken, expiresOn, now, int64(expiresOn.Sub(now).Seconds())), nil - } - return nil, fmt.Errorf("unsupported response type: %s", response.Type()) -} - -var _ entraid.IdentityProviderResponseParser = (*fakeIdentityProviderResponseParser)(nil) diff --git a/examples/default_azure_identity/main.go b/examples/default_azure_identity/main.go deleted file mode 100644 index da21373..0000000 --- a/examples/default_azure_identity/main.go +++ /dev/null @@ -1,38 +0,0 @@ -package main - -import ( - "context" - "fmt" - - entraid "github.com/redis/go-redis-entraid" - "github.com/redis/go-redis-entraid/identity" - redis "github.com/redis/go-redis/v9" -) - -func main() { - ctx := context.Background() - - // Create a default azure identity credentials provider - // This example uses the default Azure identity chain - cp, err := entraid.NewDefaultAzureCredentialsProvider(entraid.DefaultAzureCredentialsProviderOptions{ - DefaultAzureIdentityProviderOptions: identity.DefaultAzureIdentityProviderOptions{ - Scopes: []string{"https://redis.azure.com/.default"}, - }, - }) - if err != nil { - panic(fmt.Errorf("failed to create default azure identity credentials provider: %w", err)) - } - - // Create Redis client with the credentials provider - redisClient := redis.NewClient(&redis.Options{ - Addr: "your-redis-host:6379", - StreamingCredentialsProvider: cp, - }) - - // Test the connection - ok, err := redisClient.Ping(ctx).Result() - if err != nil { - panic(fmt.Errorf("failed to ping Redis: %w", err)) - } - fmt.Println("Ping result:", ok) -} diff --git a/examples/entraid/clientcert/example_test.go b/examples/entraid/clientcert/example_test.go deleted file mode 100644 index 1060433..0000000 --- a/examples/entraid/clientcert/example_test.go +++ /dev/null @@ -1,224 +0,0 @@ -package main - -import ( - "context" - "crypto/rsa" - "crypto/x509" - "encoding/base64" - "encoding/pem" - "fmt" - "os" - "testing" - "time" - - "config" - - entraid "github.com/redis/go-redis-entraid" - "github.com/redis/go-redis-entraid/identity" - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis/v9" -) - -func TestClientCert(t *testing.T) { - ctx := context.Background() - - // Load configuration - cfg, err := config.LoadConfig(os.Getenv("REDIS_ENDPOINTS_CONFIG_PATH")) - if err != nil { - t.Logf("Failed to load config: %v", err) - } - - pk, err := parsePrivateKeyTest(cfg.AzurePrivateKey) - if err != nil { - t.Fatalf("Failed to parse private key: %v", err) - } - - // Create a confidential identity credentials provider with certificate authentication - cp, err := entraid.NewConfidentialCredentialsProvider(entraid.ConfidentialCredentialsProviderOptions{ - CredentialsProviderOptions: entraid.CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.001, // Set to refresh very early - LowerRefreshBound: time.Second * 1, // Set lower bound to 1 second - }, - }, - ConfidentialIdentityProviderOptions: identity.ConfidentialIdentityProviderOptions{ - ClientID: cfg.AzureClientID, - ClientSecret: cfg.AzureClientSecret, - CredentialsType: identity.ClientCertificateCredentialType, - Authority: identity.AuthorityConfiguration{ - AuthorityType: identity.AuthorityTypeMultiTenant, - TenantID: cfg.AzureTenantID, - }, - Scopes: cfg.GetRedisScopes(), - ClientCert: parseCertificatesTest(cfg.AzureCert), - ClientPrivateKey: pk, - }, - }) - if err != nil { - t.Logf("Failed to create credentials provider: %v", err) - } - - // Create Redis client with streaming credentials provider - opts, err := redis.ParseURL(cfg.Endpoints["standalone-entraid-acl"].Endpoints[0]) - if err != nil { - t.Fatalf("Failed to parse Redis URL: %v", err) - } - opts.StreamingCredentialsProvider = cp - redisClient := redis.NewClient(opts) - - // Create second Redis client for cluster - clusterOpts, err := redis.ParseURL(cfg.Endpoints["cluster-entraid-acl"].Endpoints[0]) - if err != nil { - t.Fatalf("Failed to parse Redis URL: %v", err) - } - clusterClient := redis.NewClusterClient(&redis.ClusterOptions{ - Addrs: []string{clusterOpts.Addr}, - StreamingCredentialsProvider: cp, - }) - - // Test the connection - pong, err := redisClient.Ping(ctx).Result() - if err != nil { - t.Fatalf("Failed to ping Redis: %v", err) - } - if pong != "PONG" { - t.Errorf("Expected PONG, got %s", pong) - } - t.Logf("Successfully connected to Redis standalone: %s", pong) - - // Test cluster connection - clusterPong, err := clusterClient.Ping(ctx).Result() - if err != nil { - t.Fatalf("Failed to ping Redis cluster: %v", err) - } - if clusterPong != "PONG" { - t.Errorf("Expected PONG, got %s", clusterPong) - } - t.Logf("Successfully connected to Redis cluster: %s", clusterPong) - - // Set a test key - err = redisClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - t.Fatalf("Failed to set test key: %v", err) - } - - // Get the test key - val, err := redisClient.Get(ctx, "test-key").Result() - if err != nil { - t.Fatalf("Failed to get test key: %v", err) - } - if val != "test-value" { - t.Errorf("Expected test-value, got %s", val) - } - t.Logf("Retrieved value from standalone: %s", val) - - // Set a test key in cluster - err = clusterClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - t.Fatalf("Failed to set test key in cluster: %v", err) - } - - // Get the test key from cluster - clusterVal, err := clusterClient.Get(ctx, "test-key").Result() - if err != nil { - t.Fatalf("Failed to get test key from cluster: %v", err) - } - if clusterVal != "test-value" { - t.Errorf("Expected test-value, got %s", clusterVal) - } - t.Logf("Retrieved value from cluster: %s", clusterVal) - - // Wait for token to expire - t.Log("Waiting for token to expire...") - time.Sleep(3 * time.Second) - - // Test token refresh by retrying operations - t.Log("Testing token refresh...") - - // Retry standalone operations - var pingSuccess bool - for i := 0; i < 3; i++ { - pong, err = redisClient.Ping(ctx).Result() - if err != nil { - t.Logf("Failed to ping Redis (attempt %d): %v", i+1, err) - continue - } - t.Logf("Successfully pinged Redis standalone after token refresh: %s", pong) - pingSuccess = true - break - } - if !pingSuccess { - t.Error("Failed to ping Redis standalone after token refresh") - } - - // Retry cluster operations - var clusterPingSuccess bool - for i := 0; i < 3; i++ { - clusterPong, err = clusterClient.Ping(ctx).Result() - if err != nil { - t.Logf("Failed to ping Redis cluster (attempt %d): %v", i+1, err) - continue - } - t.Logf("Successfully pinged Redis cluster after token refresh: %s", clusterPong) - clusterPingSuccess = true - break - } - if !clusterPingSuccess { - t.Error("Failed to ping Redis cluster after token refresh") - } -} - -func decodeBase64PemTest(pemData string) string { - decoded, err := base64.StdEncoding.DecodeString(pemData) - if err != nil { - panic(fmt.Sprintf("Failed to decode base64: %v", err)) - } - return string(decoded) -} - -func parsePrivateKeyTest(base64data string) (*rsa.PrivateKey, error) { - var privateKey *rsa.PrivateKey - decoded := decodeBase64PemTest(base64data) - pk, err := x509.ParsePKCS8PrivateKey([]byte(decoded)) - if err != nil { - return nil, fmt.Errorf("failed to parse pkcs8 key: %w", err) - } - privateKey, _ = pk.(*rsa.PrivateKey) - if privateKey == nil { - pk, err = x509.ParsePKCS1PrivateKey([]byte(decoded)) - if err != nil { - return nil, fmt.Errorf("failed to parse pkcs1 key: %w", err) - } - privateKey, _ = pk.(*rsa.PrivateKey) - } - return privateKey, nil -} - -func parseCertificatesTest(pemData string) []*x509.Certificate { - var certs []*x509.Certificate - decoded := decodeBase64PemTest(pemData) - for { - block, rest := pem.Decode([]byte(decoded)) - if block == nil { - break - } - if block.Type == "CERTIFICATE" { - cert, err := x509.ParseCertificate(block.Bytes) - if err != nil { - // Log but don't fail - continue - } - certs = append(certs, cert) - } - decoded = string(rest) - } - if len(certs) == 0 { - decoded := decodeBase64PemTest(pemData) - cert, err := x509.ParseCertificate([]byte(decoded)) - if err == nil { - certs = append(certs, cert) - } - } - return certs -} - diff --git a/examples/entraid/clientcert/go.mod b/examples/entraid/clientcert/go.mod deleted file mode 100644 index fcf2dc0..0000000 --- a/examples/entraid/clientcert/go.mod +++ /dev/null @@ -1,31 +0,0 @@ -module clientcert - -go 1.23.4 - -require ( - config v0.0.0 - github.com/redis/go-redis-entraid v1.0.2 - github.com/redis/go-redis/v9 v9.9.0 -) - -require ( - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect - github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/golang-jwt/jwt/v5 v5.2.2 // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect - github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect - golang.org/x/crypto v0.38.0 // indirect - golang.org/x/net v0.40.0 // indirect - golang.org/x/sys v0.33.0 // indirect - golang.org/x/text v0.25.0 // indirect -) - -replace ( - config => ../config - github.com/redis/go-redis-entraid => ../../../ -) diff --git a/examples/entraid/clientcert/go.sum b/examples/entraid/clientcert/go.sum deleted file mode 100644 index 2eb0a1f..0000000 --- a/examples/entraid/clientcert/go.sum +++ /dev/null @@ -1,51 +0,0 @@ -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0 h1:j8BorDEigD8UFOSZQiSqAMOOleyQOOQPnUAwV+Ls1gA= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0/go.mod h1:JdM5psgjfBf5fo2uWOZhflPWyDBZ/O/CNAH9CtsuZE4= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= -github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= -github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= -github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= -github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= -github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU= -github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/redis/go-redis/v9 v9.9.0 h1:URbPQ4xVQSQhZ27WMQVmZSo3uT3pL+4IdHVcYq2nVfM= -github.com/redis/go-redis/v9 v9.9.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= -golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/examples/entraid/clientcert/main.go b/examples/entraid/clientcert/main.go deleted file mode 100644 index 9f947fd..0000000 --- a/examples/entraid/clientcert/main.go +++ /dev/null @@ -1,201 +0,0 @@ -package main - -import ( - "context" - "crypto/rsa" - "crypto/x509" - "encoding/base64" - "encoding/pem" - "fmt" - "log" - "os" - "time" - - "config" - - entraid "github.com/redis/go-redis-entraid" - "github.com/redis/go-redis-entraid/identity" - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis/v9" -) - -func main() { - ctx := context.Background() - - // Load configuration - cfg, err := config.LoadConfig(os.Getenv("REDIS_ENDPOINTS_CONFIG_PATH")) - if err != nil { - log.Printf("Failed to load config: %v", err) - } - - pk, err := parsePrivateKey(cfg.AzurePrivateKey) - if err != nil { - log.Fatalf("Failed to parse private key: %v", err) - } - - // Create a confidential identity credentials provider with certificate authentication - cp, err := entraid.NewConfidentialCredentialsProvider(entraid.ConfidentialCredentialsProviderOptions{ - CredentialsProviderOptions: entraid.CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.001, // Set to refresh very early - LowerRefreshBound: time.Second * 1, // Set lower bound to 1 second - }, - }, - ConfidentialIdentityProviderOptions: identity.ConfidentialIdentityProviderOptions{ - ClientID: cfg.AzureClientID, - ClientSecret: cfg.AzureClientSecret, - CredentialsType: identity.ClientCertificateCredentialType, - Authority: identity.AuthorityConfiguration{ - AuthorityType: identity.AuthorityTypeMultiTenant, - TenantID: cfg.AzureTenantID, - }, - Scopes: cfg.GetRedisScopes(), - ClientCert: parseCertificates(cfg.AzureCert), - ClientPrivateKey: pk, - }, - }) - if err != nil { - log.Printf("Failed to create credentials provider: %v", err) - } - - // Create Redis client with streaming credentials provider - opts, err := redis.ParseURL(cfg.Endpoints["standalone-entraid-acl"].Endpoints[0]) - if err != nil { - log.Fatalf("Failed to parse Redis URL: %v", err) - } - opts.StreamingCredentialsProvider = cp - redisClient := redis.NewClient(opts) - - // Create second Redis client for cluster - clusterOpts, err := redis.ParseURL(cfg.Endpoints["cluster-entraid-acl"].Endpoints[0]) - if err != nil { - log.Fatalf("Failed to parse Redis URL: %v", err) - } - clusterClient := redis.NewClusterClient(&redis.ClusterOptions{ - Addrs: []string{clusterOpts.Addr}, - StreamingCredentialsProvider: cp, - }) - - // Test the connection - pong, err := redisClient.Ping(ctx).Result() - if err != nil { - log.Fatalf("Failed to ping Redis: %v", err) - } - fmt.Printf("Successfully connected to Redis standalone: %s\n", pong) - - // Test cluster connection - clusterPong, err := clusterClient.Ping(ctx).Result() - if err != nil { - log.Fatalf("Failed to ping Redis cluster: %v", err) - } - fmt.Printf("Successfully connected to Redis cluster: %s\n", clusterPong) - - // Set a test key - err = redisClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - log.Fatalf("Failed to set test key: %v", err) - } - - // Get the test key - val, err := redisClient.Get(ctx, "test-key").Result() - if err != nil { - log.Fatalf("Failed to get test key: %v", err) - } - fmt.Printf("Retrieved value from standalone: %s\n", val) - - // Set a test key in cluster - err = clusterClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - log.Fatalf("Failed to set test key in cluster: %v", err) - } - - // Get the test key from cluster - clusterVal, err := clusterClient.Get(ctx, "test-key").Result() - if err != nil { - log.Fatalf("Failed to get test key from cluster: %v", err) - } - fmt.Printf("Retrieved value from cluster: %s\n", clusterVal) - - // Wait for token to expire - fmt.Println("Waiting for token to expire...") - time.Sleep(3 * time.Second) - - // Test token refresh by retrying operations - fmt.Println("Testing token refresh...") - - // Retry standalone operations - for i := 0; i < 3; i++ { - pong, err = redisClient.Ping(ctx).Result() - if err != nil { - log.Printf("Failed to ping Redis (attempt %d): %v", i+1, err) - continue - } - fmt.Printf("Successfully pinged Redis standalone after token refresh: %s\n", pong) - break - } - - // Retry cluster operations - for i := 0; i < 3; i++ { - clusterPong, err = clusterClient.Ping(ctx).Result() - if err != nil { - log.Printf("Failed to ping Redis cluster (attempt %d): %v", i+1, err) - continue - } - fmt.Printf("Successfully pinged Redis cluster after token refresh: %s\n", clusterPong) - break - } -} - -func decodeBase64Pem(pemData string) string { - decoded, err := base64.StdEncoding.DecodeString(pemData) - if err != nil { - log.Fatalf("Failed to decode base64: %v", err) - } - return string(decoded) -} - -func parsePrivateKey(base64data string) (*rsa.PrivateKey, error) { - var privateKey *rsa.PrivateKey - decoded := decodeBase64Pem(base64data) - pk, err := x509.ParsePKCS8PrivateKey([]byte(decoded)) - if err != nil { - return nil, fmt.Errorf("failed to parse pkcs8 key: %w", err) - } - privateKey, _ = pk.(*rsa.PrivateKey) - if privateKey == nil { - pk, err = x509.ParsePKCS1PrivateKey([]byte(decoded)) - if err != nil { - return nil, fmt.Errorf("failed to parse pkcs1 key: %w", err) - } - privateKey, _ = pk.(*rsa.PrivateKey) - } - return privateKey, nil -} - -func parseCertificates(pemData string) []*x509.Certificate { - var certs []*x509.Certificate - decoded := decodeBase64Pem(pemData) - for { - block, rest := pem.Decode([]byte(decoded)) - if block == nil { - break - } - if block.Type == "CERTIFICATE" { - cert, err := x509.ParseCertificate(block.Bytes) - if err != nil { - log.Printf("Failed to parse certificate: %v", err) - } - certs = append(certs, cert) - } - decoded = string(rest) - } - if len(certs) == 0 { - decoded := decodeBase64Pem(pemData) - cert, err := x509.ParseCertificate([]byte(decoded)) - if err != nil { - log.Printf("Failed to parse certificate: %v", err) - } - certs = append(certs, cert) - } - return certs -} diff --git a/examples/entraid/clientsecret/example_test.go b/examples/entraid/clientsecret/example_test.go deleted file mode 100644 index 7bdf509..0000000 --- a/examples/entraid/clientsecret/example_test.go +++ /dev/null @@ -1,159 +0,0 @@ -package main - -import ( - "context" - "os" - "testing" - "time" - - "config" - - entraid "github.com/redis/go-redis-entraid" - "github.com/redis/go-redis-entraid/identity" - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis/v9" -) - -func TestClientSecret(t *testing.T) { - ctx := context.Background() - - // Load configuration - cfg, err := config.LoadConfig(os.Getenv("REDIS_ENDPOINTS_CONFIG_PATH")) - if err != nil { - t.Fatalf("Failed to load config: %v", err) - } - - // Create a confidential identity credentials provider - // This example uses client secret authentication - cp, err := entraid.NewConfidentialCredentialsProvider(entraid.ConfidentialCredentialsProviderOptions{ - CredentialsProviderOptions: entraid.CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.001, // Set to refresh very early - LowerRefreshBound: time.Second * 1, // Set lower bound to 1 second - }, - }, - ConfidentialIdentityProviderOptions: identity.ConfidentialIdentityProviderOptions{ - ClientID: cfg.AzureClientID, - ClientSecret: cfg.AzureClientSecret, - CredentialsType: identity.ClientSecretCredentialType, - Authority: identity.AuthorityConfiguration{ - AuthorityType: identity.AuthorityTypeMultiTenant, - TenantID: cfg.AzureTenantID, - }, - Scopes: cfg.GetRedisScopes(), - }, - }) - if err != nil { - t.Fatalf("Failed to create credentials provider: %v", err) - } - - // Create Redis client with streaming credentials provider - opts, err := redis.ParseURL(cfg.Endpoints["standalone-entraid-acl"].Endpoints[0]) - if err != nil { - t.Fatalf("Failed to parse Redis URL: %v", err) - } - opts.StreamingCredentialsProvider = cp - redisClient := redis.NewClient(opts) - - // Create second Redis client for cluster - clusterOpts, err := redis.ParseURL(cfg.Endpoints["cluster-entraid-acl"].Endpoints[0]) - if err != nil { - t.Fatalf("Failed to parse Redis URL: %v", err) - } - clusterClient := redis.NewClusterClient(&redis.ClusterOptions{ - Addrs: []string{clusterOpts.Addr}, - StreamingCredentialsProvider: cp, - }) - - // Test the connection - pong, err := redisClient.Ping(ctx).Result() - if err != nil { - t.Fatalf("Failed to ping Redis: %v", err) - } - if pong != "PONG" { - t.Errorf("Expected PONG, got %s", pong) - } - t.Logf("Successfully connected to Redis standalone: %s", pong) - - // Test cluster connection - clusterPong, err := clusterClient.Ping(ctx).Result() - if err != nil { - t.Fatalf("Failed to ping Redis cluster: %v", err) - } - if clusterPong != "PONG" { - t.Errorf("Expected PONG, got %s", clusterPong) - } - t.Logf("Successfully connected to Redis cluster: %s", clusterPong) - - // Set a test key - err = redisClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - t.Fatalf("Failed to set test key: %v", err) - } - - // Get the test key - val, err := redisClient.Get(ctx, "test-key").Result() - if err != nil { - t.Fatalf("Failed to get test key: %v", err) - } - if val != "test-value" { - t.Errorf("Expected test-value, got %s", val) - } - t.Logf("Retrieved value from standalone: %s", val) - - // Set a test key in cluster - err = clusterClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - t.Fatalf("Failed to set test key in cluster: %v", err) - } - - // Get the test key from cluster - clusterVal, err := clusterClient.Get(ctx, "test-key").Result() - if err != nil { - t.Fatalf("Failed to get test key from cluster: %v", err) - } - if clusterVal != "test-value" { - t.Errorf("Expected test-value, got %s", clusterVal) - } - t.Logf("Retrieved value from cluster: %s", clusterVal) - - // Wait for token to expire - t.Log("Waiting for token to expire...") - time.Sleep(3 * time.Second) - - // Test token refresh by retrying operations - t.Log("Testing token refresh...") - - // Retry standalone operations - var pingSuccess bool - for i := 0; i < 3; i++ { - pong, err = redisClient.Ping(ctx).Result() - if err != nil { - t.Logf("Failed to ping Redis (attempt %d): %v", i+1, err) - continue - } - t.Logf("Successfully pinged Redis standalone after token refresh: %s", pong) - pingSuccess = true - break - } - if !pingSuccess { - t.Error("Failed to ping Redis standalone after token refresh") - } - - // Retry cluster operations - var clusterPingSuccess bool - for i := 0; i < 3; i++ { - clusterPong, err = clusterClient.Ping(ctx).Result() - if err != nil { - t.Logf("Failed to ping Redis cluster (attempt %d): %v", i+1, err) - continue - } - t.Logf("Successfully pinged Redis cluster after token refresh: %s", clusterPong) - clusterPingSuccess = true - break - } - if !clusterPingSuccess { - t.Error("Failed to ping Redis cluster after token refresh") - } -} - diff --git a/examples/entraid/clientsecret/go.mod b/examples/entraid/clientsecret/go.mod deleted file mode 100644 index c624964..0000000 --- a/examples/entraid/clientsecret/go.mod +++ /dev/null @@ -1,31 +0,0 @@ -module clientsecret - -go 1.23.4 - -require ( - config v0.0.0 - github.com/redis/go-redis-entraid v1.0.2 - github.com/redis/go-redis/v9 v9.9.0 -) - -replace ( - config => ../config - github.com/redis/go-redis-entraid => ../../../ -) - -require ( - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect - github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/golang-jwt/jwt/v5 v5.2.2 // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect - github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect - golang.org/x/crypto v0.38.0 // indirect - golang.org/x/net v0.40.0 // indirect - golang.org/x/sys v0.33.0 // indirect - golang.org/x/text v0.25.0 // indirect -) diff --git a/examples/entraid/clientsecret/go.sum b/examples/entraid/clientsecret/go.sum deleted file mode 100644 index 2eb0a1f..0000000 --- a/examples/entraid/clientsecret/go.sum +++ /dev/null @@ -1,51 +0,0 @@ -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0 h1:j8BorDEigD8UFOSZQiSqAMOOleyQOOQPnUAwV+Ls1gA= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0/go.mod h1:JdM5psgjfBf5fo2uWOZhflPWyDBZ/O/CNAH9CtsuZE4= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= -github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= -github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= -github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= -github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= -github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU= -github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/redis/go-redis/v9 v9.9.0 h1:URbPQ4xVQSQhZ27WMQVmZSo3uT3pL+4IdHVcYq2nVfM= -github.com/redis/go-redis/v9 v9.9.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= -golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/examples/entraid/clientsecret/main.go b/examples/entraid/clientsecret/main.go deleted file mode 100644 index 4387bad..0000000 --- a/examples/entraid/clientsecret/main.go +++ /dev/null @@ -1,137 +0,0 @@ -package main - -import ( - "context" - "fmt" - "log" - "os" - "time" - - "config" - - entraid "github.com/redis/go-redis-entraid" - "github.com/redis/go-redis-entraid/identity" - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis/v9" -) - -func main() { - ctx := context.Background() - - // Load configuration - cfg, err := config.LoadConfig(os.Getenv("REDIS_ENDPOINTS_CONFIG_PATH")) - if err != nil { - log.Fatalf("Failed to load config: %v", err) - } - - // Create a confidential identity credentials provider - // This example uses client secret authentication - cp, err := entraid.NewConfidentialCredentialsProvider(entraid.ConfidentialCredentialsProviderOptions{ - CredentialsProviderOptions: entraid.CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.001, // Set to refresh very early - LowerRefreshBound: time.Second * 1, // Set lower bound to 1 second - }, - }, - ConfidentialIdentityProviderOptions: identity.ConfidentialIdentityProviderOptions{ - ClientID: cfg.AzureClientID, - ClientSecret: cfg.AzureClientSecret, - CredentialsType: identity.ClientSecretCredentialType, - Authority: identity.AuthorityConfiguration{ - AuthorityType: identity.AuthorityTypeMultiTenant, - TenantID: cfg.AzureTenantID, - }, - Scopes: cfg.GetRedisScopes(), - }, - }) - if err != nil { - log.Fatalf("Failed to create credentials provider: %v", err) - } - - // Create Redis client with streaming credentials provider - opts, err := redis.ParseURL(cfg.Endpoints["standalone-entraid-acl"].Endpoints[0]) - if err != nil { - log.Fatalf("Failed to parse Redis URL: %v", err) - } - opts.StreamingCredentialsProvider = cp - redisClient := redis.NewClient(opts) - - // Create second Redis client for cluster - clusterOpts, err := redis.ParseURL(cfg.Endpoints["cluster-entraid-acl"].Endpoints[0]) - if err != nil { - log.Fatalf("Failed to parse Redis URL: %v", err) - } - clusterClient := redis.NewClusterClient(&redis.ClusterOptions{ - Addrs: []string{clusterOpts.Addr}, - StreamingCredentialsProvider: cp, - }) - - // Test the connection - pong, err := redisClient.Ping(ctx).Result() - if err != nil { - log.Fatalf("Failed to ping Redis: %v", err) - } - fmt.Printf("Successfully connected to Redis standalone: %s\n", pong) - - // Test cluster connection - clusterPong, err := clusterClient.Ping(ctx).Result() - if err != nil { - log.Fatalf("Failed to ping Redis cluster: %v", err) - } - fmt.Printf("Successfully connected to Redis cluster: %s\n", clusterPong) - - // Set a test key - err = redisClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - log.Fatalf("Failed to set test key: %v", err) - } - - // Get the test key - val, err := redisClient.Get(ctx, "test-key").Result() - if err != nil { - log.Fatalf("Failed to get test key: %v", err) - } - fmt.Printf("Retrieved value from standalone: %s\n", val) - - // Set a test key in cluster - err = clusterClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - log.Fatalf("Failed to set test key in cluster: %v", err) - } - - // Get the test key from cluster - clusterVal, err := clusterClient.Get(ctx, "test-key").Result() - if err != nil { - log.Fatalf("Failed to get test key from cluster: %v", err) - } - fmt.Printf("Retrieved value from cluster: %s\n", clusterVal) - - // Wait for token to expire - fmt.Println("Waiting for token to expire...") - time.Sleep(3 * time.Second) - - // Test token refresh by retrying operations - fmt.Println("Testing token refresh...") - - // Retry standalone operations - for i := 0; i < 3; i++ { - pong, err = redisClient.Ping(ctx).Result() - if err != nil { - log.Printf("Failed to ping Redis (attempt %d): %v", i+1, err) - continue - } - fmt.Printf("Successfully pinged Redis standalone after token refresh: %s\n", pong) - break - } - - // Retry cluster operations - for i := 0; i < 3; i++ { - clusterPong, err = clusterClient.Ping(ctx).Result() - if err != nil { - log.Printf("Failed to ping Redis cluster (attempt %d): %v", i+1, err) - continue - } - fmt.Printf("Successfully pinged Redis cluster after token refresh: %s\n", clusterPong) - break - } -} diff --git a/examples/entraid/config/config.go b/examples/entraid/config/config.go deleted file mode 100644 index 863f6b0..0000000 --- a/examples/entraid/config/config.go +++ /dev/null @@ -1,95 +0,0 @@ -package config - -import ( - "encoding/json" - "fmt" - "os" - "strings" -) - -// RedisEndpoint represents a Redis endpoint configuration -// It is loaded from a JSON file -type RedisEndpoint struct { - Username string `json:"username,omitempty"` - Password string `json:"password,omitempty"` - TLS bool `json:"tls"` - CertificatesLocation string `json:"certificatesLocation,omitempty"` - Endpoints []string `json:"endpoints"` -} - -// EntraidConfig represents the configuration for Entra ID authentication -// It is loaded from a both JSON file and environment variables -type EntraidConfig struct { - // JSON config fields - Endpoints map[string]RedisEndpoint `json:"endpoints"` - - // Azure environment variables - AzureClientID string `json:"-"` - AzureClientSecret string `json:"-"` - AzureTenantID string `json:"-"` - AzureAuthority string `json:"-"` - AzureRedisScopes string `json:"-"` - AzureCert string `json:"-"` - AzurePrivateKey string `json:"-"` - AzureUserAssignedManagedID string `json:"-"` -} - -// LoadConfig loads the configuration from both JSON file and environment variables -func LoadConfig(configPath string) (*EntraidConfig, error) { - config := &EntraidConfig{} - - // Load from JSON file first - if configPath == "" { - configPath = "../endpoints.json" // Default path if not set - } - - file, err := os.Open(configPath) - if err != nil { - file, err = os.Open("endpoints.json") - if err != nil { - return nil, fmt.Errorf("failed to open configuration file: %v", err) - } - } - - defer file.Close() - decoder := json.NewDecoder(file) - err = decoder.Decode(&config.Endpoints) - if err != nil { - return nil, fmt.Errorf("failed to decode configuration file: %v", err) - } - // Override with environment variables if they exist - if envClientID := os.Getenv("AZURE_CLIENT_ID"); envClientID != "" { - config.AzureClientID = envClientID - } - if envClientSecret := os.Getenv("AZURE_CLIENT_SECRET"); envClientSecret != "" { - config.AzureClientSecret = envClientSecret - } - if envTenantID := os.Getenv("AZURE_TENANT_ID"); envTenantID != "" { - config.AzureTenantID = envTenantID - } - if envAuthority := os.Getenv("AZURE_AUTHORITY"); envAuthority != "" { - config.AzureAuthority = envAuthority - } - if envRedisScopes := os.Getenv("AZURE_REDIS_SCOPES"); envRedisScopes != "" { - config.AzureRedisScopes = envRedisScopes - } - if envCert := os.Getenv("AZURE_CERT"); envCert != "" { - config.AzureCert = envCert - } - if envPrivateKey := os.Getenv("AZURE_PRIVATE_KEY"); envPrivateKey != "" { - config.AzurePrivateKey = envPrivateKey - } - if envManagedID := os.Getenv("AZURE_USER_ASSIGNED_MANAGED_ID"); envManagedID != "" { - config.AzureUserAssignedManagedID = envManagedID - } - - return config, nil -} - -// GetRedisScopes returns the Redis scopes as a string slice -func (c *EntraidConfig) GetRedisScopes() []string { - if c.AzureRedisScopes == "" { - return []string{"https://redis.azure.com/.default"} // Default scope - } - return strings.Split(c.AzureRedisScopes, ",") -} diff --git a/examples/entraid/config/config_test.go b/examples/entraid/config/config_test.go deleted file mode 100644 index a050dbb..0000000 --- a/examples/entraid/config/config_test.go +++ /dev/null @@ -1,262 +0,0 @@ -package config - -import ( - "os" - "path/filepath" - "testing" -) - -func TestLoadConfig(t *testing.T) { - // Create a temporary directory for test files - tempDir := t.TempDir() - - // Test cases - tests := []struct { - name string - configContent string - envVars map[string]string - expectedConfig *EntraidConfig - expectError bool - configPath string // Add configPath to test different paths - }{ - { - name: "valid config file", - configContent: `{ - "endpoint1": { - "username": "testuser", - "password": "testpass", - "tls": true, - "certificatesLocation": "/path/to/certs", - "endpoints": ["redis1:6379", "redis2:6379"] - } - }`, - expectedConfig: &EntraidConfig{ - Endpoints: map[string]RedisEndpoint{ - "endpoint1": { - Username: "testuser", - Password: "testpass", - TLS: true, - CertificatesLocation: "/path/to/certs", - Endpoints: []string{"redis1:6379", "redis2:6379"}, - }, - }, - }, - expectError: false, - }, - { - name: "invalid JSON", - configContent: `{ - "endpoint1": { - "username": "testuser", - "password": "testpass", - "tls": true, - "certificatesLocation": "/path/to/certs", - "endpoints": ["redis1:6379", "redis2:6379"] - } - `, // Missing closing brace - expectError: true, - }, - { - name: "config with environment variables", - configContent: `{ - "endpoint1": { - "endpoints": ["redis1:6379"] - } - }`, - envVars: map[string]string{ - "AZURE_CLIENT_ID": "test-client-id", - "AZURE_CLIENT_SECRET": "test-client-secret", - "AZURE_TENANT_ID": "test-tenant-id", - "AZURE_AUTHORITY": "test-authority", - "AZURE_REDIS_SCOPES": "scope1,scope2", - }, - expectedConfig: &EntraidConfig{ - Endpoints: map[string]RedisEndpoint{ - "endpoint1": { - Endpoints: []string{"redis1:6379"}, - }, - }, - AzureClientID: "test-client-id", - AzureClientSecret: "test-client-secret", - AzureTenantID: "test-tenant-id", - AzureAuthority: "test-authority", - AzureRedisScopes: "scope1,scope2", - }, - expectError: false, - }, - { - name: "non-existent config file", - configPath: "non_existent.json", - expectError: true, - }, - { - name: "empty config file", - configContent: `{}`, - expectedConfig: &EntraidConfig{ - Endpoints: map[string]RedisEndpoint{}, - }, - expectError: false, - }, - { - name: "config with all Azure environment variables", - configContent: `{ - "endpoint1": { - "endpoints": ["redis1:6379"] - } - }`, - envVars: map[string]string{ - "AZURE_CLIENT_ID": "test-client-id", - "AZURE_CLIENT_SECRET": "test-client-secret", - "AZURE_TENANT_ID": "test-tenant-id", - "AZURE_AUTHORITY": "test-authority", - "AZURE_REDIS_SCOPES": "scope1,scope2", - "AZURE_CERT": "test-cert", - "AZURE_PRIVATE_KEY": "test-key", - "AZURE_USER_ASSIGNED_MANAGED_ID": "test-managed-id", - }, - expectedConfig: &EntraidConfig{ - Endpoints: map[string]RedisEndpoint{ - "endpoint1": { - Endpoints: []string{"redis1:6379"}, - }, - }, - AzureClientID: "test-client-id", - AzureClientSecret: "test-client-secret", - AzureTenantID: "test-tenant-id", - AzureAuthority: "test-authority", - AzureRedisScopes: "scope1,scope2", - AzureCert: "test-cert", - AzurePrivateKey: "test-key", - AzureUserAssignedManagedID: "test-managed-id", - }, - expectError: false, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - // Create test config file if content is provided - var configPath string - if tt.configContent != "" { - configPath = filepath.Join(tempDir, "endpoints.json") - if err := os.WriteFile(configPath, []byte(tt.configContent), 0644); err != nil { - t.Fatalf("Failed to create test config file: %v", err) - } - } else if tt.configPath != "" { - configPath = tt.configPath - } - - // Set environment variables - for k, v := range tt.envVars { - os.Setenv(k, v) - } - defer func() { - // Clean up environment variables - for k := range tt.envVars { - os.Unsetenv(k) - } - }() - - // Load config - config, err := LoadConfig(configPath) - - // Check error - if tt.expectError { - if err == nil { - t.Error("Expected error but got none") - } - return - } - if err != nil { - t.Fatalf("Unexpected error: %v", err) - } - - // Verify config - if len(config.Endpoints) != len(tt.expectedConfig.Endpoints) { - t.Errorf("Expected %d endpoints, got %d", len(tt.expectedConfig.Endpoints), len(config.Endpoints)) - } - - // Check environment variables - if tt.expectedConfig.AzureClientID != "" && config.AzureClientID != tt.expectedConfig.AzureClientID { - t.Errorf("Expected AzureClientID %s, got %s", tt.expectedConfig.AzureClientID, config.AzureClientID) - } - if tt.expectedConfig.AzureClientSecret != "" && config.AzureClientSecret != tt.expectedConfig.AzureClientSecret { - t.Errorf("Expected AzureClientSecret %s, got %s", tt.expectedConfig.AzureClientSecret, config.AzureClientSecret) - } - if tt.expectedConfig.AzureTenantID != "" && config.AzureTenantID != tt.expectedConfig.AzureTenantID { - t.Errorf("Expected AzureTenantID %s, got %s", tt.expectedConfig.AzureTenantID, config.AzureTenantID) - } - if tt.expectedConfig.AzureAuthority != "" && config.AzureAuthority != tt.expectedConfig.AzureAuthority { - t.Errorf("Expected AzureAuthority %s, got %s", tt.expectedConfig.AzureAuthority, config.AzureAuthority) - } - if tt.expectedConfig.AzureRedisScopes != "" && config.AzureRedisScopes != tt.expectedConfig.AzureRedisScopes { - t.Errorf("Expected AzureRedisScopes %s, got %s", tt.expectedConfig.AzureRedisScopes, config.AzureRedisScopes) - } - if tt.expectedConfig.AzureCert != "" && config.AzureCert != tt.expectedConfig.AzureCert { - t.Errorf("Expected AzureCert %s, got %s", tt.expectedConfig.AzureCert, config.AzureCert) - } - if tt.expectedConfig.AzurePrivateKey != "" && config.AzurePrivateKey != tt.expectedConfig.AzurePrivateKey { - t.Errorf("Expected AzurePrivateKey %s, got %s", tt.expectedConfig.AzurePrivateKey, config.AzurePrivateKey) - } - if tt.expectedConfig.AzureUserAssignedManagedID != "" && config.AzureUserAssignedManagedID != tt.expectedConfig.AzureUserAssignedManagedID { - t.Errorf("Expected AzureUserAssignedManagedID %s, got %s", tt.expectedConfig.AzureUserAssignedManagedID, config.AzureUserAssignedManagedID) - } - }) - } -} - -func TestGetRedisScopes(t *testing.T) { - tests := []struct { - name string - config *EntraidConfig - expectedScopes []string - }{ - { - name: "default scope", - config: &EntraidConfig{ - AzureRedisScopes: "", - }, - expectedScopes: []string{"https://redis.azure.com/.default"}, - }, - { - name: "custom scopes", - config: &EntraidConfig{ - AzureRedisScopes: "scope1,scope2,scope3", - }, - expectedScopes: []string{"scope1", "scope2", "scope3"}, - }, - { - name: "single scope", - config: &EntraidConfig{ - AzureRedisScopes: "single-scope", - }, - expectedScopes: []string{"single-scope"}, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - scopes := tt.config.GetRedisScopes() - if len(scopes) != len(tt.expectedScopes) { - t.Errorf("Expected %d scopes, got %d", len(tt.expectedScopes), len(scopes)) - return - } - for i, scope := range scopes { - if scope != tt.expectedScopes[i] { - t.Errorf("Expected scope %s at index %d, got %s", tt.expectedScopes[i], i, scope) - } - } - }) - } -} - -func TestLoadConfigDefaultPath(t *testing.T) { - // Test loading config from default path - config, err := LoadConfig("") - if err != nil { - t.Logf("Expected error when loading from default path: %v", err) - } else { - t.Log("Successfully loaded config from default path") - } - _ = config // Use config to avoid unused variable warning -} diff --git a/examples/entraid/config/go.mod b/examples/entraid/config/go.mod deleted file mode 100644 index b62db2e..0000000 --- a/examples/entraid/config/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module config - -go 1.23.4 \ No newline at end of file diff --git a/examples/entraid/defaultcredentials/example_test.go b/examples/entraid/defaultcredentials/example_test.go deleted file mode 100644 index 8b621d0..0000000 --- a/examples/entraid/defaultcredentials/example_test.go +++ /dev/null @@ -1,155 +0,0 @@ -package main - -import ( - "context" - "os" - "testing" - "time" - - "config" - - entraid "github.com/redis/go-redis-entraid" - "github.com/redis/go-redis-entraid/identity" - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis/v9" -) - -func TestDefaultCredentials(t *testing.T) { - ctx := context.Background() - - // Load configuration - cfg, err := config.LoadConfig(os.Getenv("REDIS_ENDPOINTS_CONFIG_PATH")) - if err != nil { - t.Fatalf("Failed to load config: %v", err) - } - - // Create a default credentials provider - // This will try different authentication methods in sequence: - // 1. Environment variables (AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, etc.) - // 2. Managed Identity (system-assigned or user-assigned) - // 3. Azure CLI credentials - // 4. Visual Studio Code credentials - cp, err := entraid.NewDefaultAzureCredentialsProvider(entraid.DefaultAzureCredentialsProviderOptions{ - CredentialsProviderOptions: entraid.CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.001, // Set to refresh very early - LowerRefreshBound: time.Second * 1, // Set lower bound to 1 second - }, - }, - DefaultAzureIdentityProviderOptions: identity.DefaultAzureIdentityProviderOptions{ - Scopes: []string{"https://redis.azure.com/.default"}, - }, - }) - if err != nil { - t.Fatalf("Failed to create credentials provider: %v", err) - } - - // Create Redis client with streaming credentials provider - opts, err := redis.ParseURL(cfg.Endpoints["standalone-entraid-acl"].Endpoints[0]) - if err != nil { - t.Fatalf("Failed to parse Redis URL: %v", err) - } - opts.StreamingCredentialsProvider = cp - redisClient := redis.NewClient(opts) - - // Create second Redis client for cluster - clusterOpts, err := redis.ParseURL(cfg.Endpoints["cluster-entraid-acl"].Endpoints[0]) - if err != nil { - t.Fatalf("Failed to parse Redis URL: %v", err) - } - clusterClient := redis.NewClusterClient(&redis.ClusterOptions{ - Addrs: []string{clusterOpts.Addr}, - StreamingCredentialsProvider: cp, - }) - - pong, err := redisClient.Ping(ctx).Result() - if err != nil { - t.Fatalf("Failed to ping Redis: %v", err) - } - if pong != "PONG" { - t.Errorf("Expected PONG, got %s", pong) - } - t.Logf("Successfully connected to Redis standalone: %s", pong) - - // Test cluster connection - clusterPong, err := clusterClient.Ping(ctx).Result() - if err != nil { - t.Fatalf("Failed to ping Redis cluster: %v", err) - } - if clusterPong != "PONG" { - t.Errorf("Expected PONG, got %s", clusterPong) - } - t.Logf("Successfully connected to Redis cluster: %s", clusterPong) - - // Set a test key - err = redisClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - t.Fatalf("Failed to set test key: %v", err) - } - - // Get the test key - val, err := redisClient.Get(ctx, "test-key").Result() - if err != nil { - t.Fatalf("Failed to get test key: %v", err) - } - if val != "test-value" { - t.Errorf("Expected test-value, got %s", val) - } - t.Logf("Retrieved value from standalone: %s", val) - - // Set a test key in cluster - err = clusterClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - t.Fatalf("Failed to set test key in cluster: %v", err) - } - - // Get the test key from cluster - clusterVal, err := clusterClient.Get(ctx, "test-key").Result() - if err != nil { - t.Fatalf("Failed to get test key from cluster: %v", err) - } - if clusterVal != "test-value" { - t.Errorf("Expected test-value, got %s", clusterVal) - } - t.Logf("Retrieved value from cluster: %s", clusterVal) - - // Wait for token to expire - t.Log("Waiting for token to expire...") - time.Sleep(3 * time.Second) - - // Test token refresh by retrying operations - t.Log("Testing token refresh...") - - // Retry standalone operations - var pingSuccess bool - for i := 0; i < 3; i++ { - pong, err = redisClient.Ping(ctx).Result() - if err != nil { - t.Logf("Failed to ping Redis (attempt %d): %v", i+1, err) - continue - } - t.Logf("Successfully pinged Redis standalone after token refresh: %s", pong) - pingSuccess = true - break - } - if !pingSuccess { - t.Error("Failed to ping Redis standalone after token refresh") - } - - // Retry cluster operations - var clusterPingSuccess bool - for i := 0; i < 3; i++ { - clusterPong, err = clusterClient.Ping(ctx).Result() - if err != nil { - t.Logf("Failed to ping Redis cluster (attempt %d): %v", i+1, err) - continue - } - t.Logf("Successfully pinged Redis cluster after token refresh: %s", clusterPong) - clusterPingSuccess = true - break - } - if !clusterPingSuccess { - t.Error("Failed to ping Redis cluster after token refresh") - } -} - diff --git a/examples/entraid/defaultcredentials/go.mod b/examples/entraid/defaultcredentials/go.mod deleted file mode 100644 index beb5452..0000000 --- a/examples/entraid/defaultcredentials/go.mod +++ /dev/null @@ -1,31 +0,0 @@ -module defaultcredentials - -go 1.23.4 - -require ( - config v0.0.0 - github.com/redis/go-redis-entraid v1.0.2 - github.com/redis/go-redis/v9 v9.9.0 -) - -require ( - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect - github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/golang-jwt/jwt/v5 v5.2.2 // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect - github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect - golang.org/x/crypto v0.38.0 // indirect - golang.org/x/net v0.40.0 // indirect - golang.org/x/sys v0.33.0 // indirect - golang.org/x/text v0.25.0 // indirect -) - -replace ( - config => ../config - github.com/redis/go-redis-entraid => ../../../ -) diff --git a/examples/entraid/defaultcredentials/go.sum b/examples/entraid/defaultcredentials/go.sum deleted file mode 100644 index 2eb0a1f..0000000 --- a/examples/entraid/defaultcredentials/go.sum +++ /dev/null @@ -1,51 +0,0 @@ -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0 h1:j8BorDEigD8UFOSZQiSqAMOOleyQOOQPnUAwV+Ls1gA= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0/go.mod h1:JdM5psgjfBf5fo2uWOZhflPWyDBZ/O/CNAH9CtsuZE4= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= -github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= -github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= -github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= -github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= -github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU= -github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/redis/go-redis/v9 v9.9.0 h1:URbPQ4xVQSQhZ27WMQVmZSo3uT3pL+4IdHVcYq2nVfM= -github.com/redis/go-redis/v9 v9.9.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= -golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/examples/entraid/defaultcredentials/main.go b/examples/entraid/defaultcredentials/main.go deleted file mode 100644 index ac8d8da..0000000 --- a/examples/entraid/defaultcredentials/main.go +++ /dev/null @@ -1,133 +0,0 @@ -package main - -import ( - "context" - "fmt" - "log" - "os" - "time" - - "config" - - entraid "github.com/redis/go-redis-entraid" - "github.com/redis/go-redis-entraid/identity" - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis/v9" -) - -func main() { - ctx := context.Background() - - // Load configuration - cfg, err := config.LoadConfig(os.Getenv("REDIS_ENDPOINTS_CONFIG_PATH")) - if err != nil { - log.Fatalf("Failed to load config: %v", err) - } - - // Create a default credentials provider - // This will try different authentication methods in sequence: - // 1. Environment variables (AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, etc.) - // 2. Managed Identity (system-assigned or user-assigned) - // 3. Azure CLI credentials - // 4. Visual Studio Code credentials - cp, err := entraid.NewDefaultAzureCredentialsProvider(entraid.DefaultAzureCredentialsProviderOptions{ - CredentialsProviderOptions: entraid.CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.001, // Set to refresh very early - LowerRefreshBound: time.Second * 1, // Set lower bound to 1 second - }, - }, - DefaultAzureIdentityProviderOptions: identity.DefaultAzureIdentityProviderOptions{ - Scopes: []string{"https://redis.azure.com/.default"}, - }, - }) - if err != nil { - log.Fatalf("Failed to create credentials provider: %v", err) - } - - // Create Redis client with streaming credentials provider - opts, err := redis.ParseURL(cfg.Endpoints["standalone-entraid-acl"].Endpoints[0]) - if err != nil { - log.Fatalf("Failed to parse Redis URL: %v", err) - } - opts.StreamingCredentialsProvider = cp - redisClient := redis.NewClient(opts) - - // Create second Redis client for cluster - clusterOpts, err := redis.ParseURL(cfg.Endpoints["cluster-entraid-acl"].Endpoints[0]) - if err != nil { - log.Fatalf("Failed to parse Redis URL: %v", err) - } - clusterClient := redis.NewClusterClient(&redis.ClusterOptions{ - Addrs: []string{clusterOpts.Addr}, - StreamingCredentialsProvider: cp, - }) - - pong, err := redisClient.Ping(ctx).Result() - if err != nil { - log.Fatalf("Failed to ping Redis: %v", err) - } - fmt.Printf("Successfully connected to Redis standalone: %s\n", pong) - - // Test cluster connection - clusterPong, err := clusterClient.Ping(ctx).Result() - if err != nil { - log.Fatalf("Failed to ping Redis cluster: %v", err) - } - fmt.Printf("Successfully connected to Redis cluster: %s\n", clusterPong) - - // Set a test key - err = redisClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - log.Fatalf("Failed to set test key: %v", err) - } - - // Get the test key - val, err := redisClient.Get(ctx, "test-key").Result() - if err != nil { - log.Fatalf("Failed to get test key: %v", err) - } - fmt.Printf("Retrieved value from standalone: %s\n", val) - - // Set a test key in cluster - err = clusterClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - log.Fatalf("Failed to set test key in cluster: %v", err) - } - - // Get the test key from cluster - clusterVal, err := clusterClient.Get(ctx, "test-key").Result() - if err != nil { - log.Fatalf("Failed to get test key from cluster: %v", err) - } - fmt.Printf("Retrieved value from cluster: %s\n", clusterVal) - - // Wait for token to expire - fmt.Println("Waiting for token to expire...") - time.Sleep(3 * time.Second) - - // Test token refresh by retrying operations - fmt.Println("Testing token refresh...") - - // Retry standalone operations - for i := 0; i < 3; i++ { - pong, err = redisClient.Ping(ctx).Result() - if err != nil { - log.Printf("Failed to ping Redis (attempt %d): %v", i+1, err) - continue - } - fmt.Printf("Successfully pinged Redis standalone after token refresh: %s\n", pong) - break - } - - // Retry cluster operations - for i := 0; i < 3; i++ { - clusterPong, err = clusterClient.Ping(ctx).Result() - if err != nil { - log.Printf("Failed to ping Redis cluster (attempt %d): %v", i+1, err) - continue - } - fmt.Printf("Successfully pinged Redis cluster after token refresh: %s\n", clusterPong) - break - } -} diff --git a/examples/entraid/endpoints.json b/examples/entraid/endpoints.json deleted file mode 100644 index 45555a4..0000000 --- a/examples/entraid/endpoints.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "standalone0": { - "password": "foobared", - "tls": false, - "endpoints": [ - "redis://localhost:6379" - ] - }, - "standalone0-tls": { - "username": "default", - "password": "foobared", - "tls": true, - "certificatesLocation": "redis1-2-5-8-sentinel/work/tls", - "endpoints": [ - "rediss://localhost:6390" - ] - }, - "standalone0-acl": { - "username": "acljedis", - "password": "fizzbuzz", - "tls": false, - "endpoints": [ - "redis://localhost:6379" - ] - }, - "standalone0-acl-tls": { - "username": "acljedis", - "password": "fizzbuzz", - "tls": true, - "certificatesLocation": "redis1-2-5-8-sentinel/work/tls", - "endpoints": [ - "rediss://localhost:6390" - ] - }, - "standalone1": { - "username": "default", - "password": "foobared", - "tls": false, - "endpoints": [ - "redis://localhost:6380" - ] - }, - "standalone2-primary": { - "username": "default", - "password": "foobared", - "tls": false, - "endpoints": [ - "redis://localhost:6381" - ] - }, - "standalone3-replica-of-standalone2": { - "username": "default", - "password": "foobared", - "tls": false, - "endpoints": [ - "redis://localhost:6382" - ] - }, - "standalone4-replica-of-standalone1": { - "username": "default", - "password": "foobared", - "tls": false, - "endpoints": [ - "redis://localhost:6383" - ] - }, - "standalone5-primary": { - "username": "default", - "password": "foobared", - "tls": false, - "endpoints": [ - "redis://localhost:6384" - ] - }, - "standalone6-replica-of-standalone5": { - "username": "default", - "password": "foobared", - "tls": false, - "endpoints": [ - "redis://localhost:6385" - ] - }, - "standalone7-with-lfu-policy": { - "username": "default", - "password": "foobared", - "tls": false, - "endpoints": [ - "redis://localhost:6386" - ] - }, - "standalone9": { - "tls": false, - "endpoints": [ - "redis://localhost:6388" - ] - }, - "standalone10-replica-of-standalone9": { - "tls": false, - "endpoints": [ - "redis://localhost:6389" - ] - }, - "modules-docker": { - "tls": false, - "endpoints": [ - "redis://localhost:6479" - ] - } -} \ No newline at end of file diff --git a/examples/entraid/managedidentity_systemassigned/example_test.go b/examples/entraid/managedidentity_systemassigned/example_test.go deleted file mode 100644 index 9ed9c1f..0000000 --- a/examples/entraid/managedidentity_systemassigned/example_test.go +++ /dev/null @@ -1,152 +0,0 @@ -package main - -import ( - "context" - "os" - "testing" - "time" - - "config" - - entraid "github.com/redis/go-redis-entraid" - "github.com/redis/go-redis-entraid/identity" - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis/v9" -) - -func TestManagedIdentitySystemAssigned(t *testing.T) { - ctx := context.Background() - - // Load configuration - cfg, err := config.LoadConfig(os.Getenv("REDIS_ENDPOINTS_CONFIG_PATH")) - if err != nil { - t.Fatalf("Failed to load config: %v", err) - } - - // Create a managed identity credentials provider for system-assigned identity - cp, err := entraid.NewManagedIdentityCredentialsProvider(entraid.ManagedIdentityCredentialsProviderOptions{ - CredentialsProviderOptions: entraid.CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.001, // Set to refresh very early - LowerRefreshBound: time.Second * 1, // Set lower bound to 1 second - }, - }, - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - Scopes: cfg.GetRedisScopes(), - ManagedIdentityType: identity.SystemAssignedIdentity, - }, - }) - if err != nil { - t.Fatalf("Failed to create credentials provider: %v", err) - } - - // Create Redis client with streaming credentials provider - opts, err := redis.ParseURL(cfg.Endpoints["standalone-entraid-acl"].Endpoints[0]) - if err != nil { - t.Fatalf("Failed to parse Redis URL: %v", err) - } - opts.StreamingCredentialsProvider = cp - redisClient := redis.NewClient(opts) - - // Create second Redis client for cluster - clusterOpts, err := redis.ParseURL(cfg.Endpoints["cluster-entraid-acl"].Endpoints[0]) - if err != nil { - t.Fatalf("Failed to parse Redis URL: %v", err) - } - clusterClient := redis.NewClusterClient(&redis.ClusterOptions{ - Addrs: []string{clusterOpts.Addr}, - StreamingCredentialsProvider: cp, - }) - - // Test the connection - pong, err := redisClient.Ping(ctx).Result() - if err != nil { - t.Fatalf("Failed to ping Redis: %v", err) - } - if pong != "PONG" { - t.Errorf("Expected PONG, got %s", pong) - } - t.Logf("Successfully connected to Redis standalone: %s", pong) - - // Test cluster connection - clusterPong, err := clusterClient.Ping(ctx).Result() - if err != nil { - t.Fatalf("Failed to ping Redis cluster: %v", err) - } - if clusterPong != "PONG" { - t.Errorf("Expected PONG, got %s", clusterPong) - } - t.Logf("Successfully connected to Redis cluster: %s", clusterPong) - - // Set a test key - err = redisClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - t.Fatalf("Failed to set test key: %v", err) - } - - // Get the test key - val, err := redisClient.Get(ctx, "test-key").Result() - if err != nil { - t.Fatalf("Failed to get test key: %v", err) - } - if val != "test-value" { - t.Errorf("Expected test-value, got %s", val) - } - t.Logf("Retrieved value from standalone: %s", val) - - // Set a test key in cluster - err = clusterClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - t.Fatalf("Failed to set test key in cluster: %v", err) - } - - // Get the test key from cluster - clusterVal, err := clusterClient.Get(ctx, "test-key").Result() - if err != nil { - t.Fatalf("Failed to get test key from cluster: %v", err) - } - if clusterVal != "test-value" { - t.Errorf("Expected test-value, got %s", clusterVal) - } - t.Logf("Retrieved value from cluster: %s", clusterVal) - - // Wait for token to expire - t.Log("Waiting for token to expire...") - time.Sleep(3 * time.Second) - - // Test token refresh by retrying operations - t.Log("Testing token refresh...") - - // Retry standalone operations - var pingSuccess bool - for i := 0; i < 3; i++ { - pong, err = redisClient.Ping(ctx).Result() - if err != nil { - t.Logf("Failed to ping Redis (attempt %d): %v", i+1, err) - continue - } - t.Logf("Successfully pinged Redis standalone after token refresh: %s", pong) - pingSuccess = true - break - } - if !pingSuccess { - t.Error("Failed to ping Redis standalone after token refresh") - } - - // Retry cluster operations - var clusterPingSuccess bool - for i := 0; i < 3; i++ { - clusterPong, err = clusterClient.Ping(ctx).Result() - if err != nil { - t.Logf("Failed to ping Redis cluster (attempt %d): %v", i+1, err) - continue - } - t.Logf("Successfully pinged Redis cluster after token refresh: %s", clusterPong) - clusterPingSuccess = true - break - } - if !clusterPingSuccess { - t.Error("Failed to ping Redis cluster after token refresh") - } -} - diff --git a/examples/entraid/managedidentity_systemassigned/go.mod b/examples/entraid/managedidentity_systemassigned/go.mod deleted file mode 100644 index 1a2cdba..0000000 --- a/examples/entraid/managedidentity_systemassigned/go.mod +++ /dev/null @@ -1,31 +0,0 @@ -module managedidentity_systemassigned - -go 1.23.4 - -require ( - config v0.0.0 - github.com/redis/go-redis-entraid v1.0.2 - github.com/redis/go-redis/v9 v9.9.0 -) - -replace ( - config => ../config - github.com/redis/go-redis-entraid => ../../../ -) - -require ( - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect - github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/golang-jwt/jwt/v5 v5.2.2 // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect - github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect - golang.org/x/crypto v0.38.0 // indirect - golang.org/x/net v0.40.0 // indirect - golang.org/x/sys v0.33.0 // indirect - golang.org/x/text v0.25.0 // indirect -) diff --git a/examples/entraid/managedidentity_systemassigned/go.sum b/examples/entraid/managedidentity_systemassigned/go.sum deleted file mode 100644 index 2eb0a1f..0000000 --- a/examples/entraid/managedidentity_systemassigned/go.sum +++ /dev/null @@ -1,51 +0,0 @@ -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0 h1:j8BorDEigD8UFOSZQiSqAMOOleyQOOQPnUAwV+Ls1gA= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0/go.mod h1:JdM5psgjfBf5fo2uWOZhflPWyDBZ/O/CNAH9CtsuZE4= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= -github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= -github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= -github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= -github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= -github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU= -github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/redis/go-redis/v9 v9.9.0 h1:URbPQ4xVQSQhZ27WMQVmZSo3uT3pL+4IdHVcYq2nVfM= -github.com/redis/go-redis/v9 v9.9.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= -golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/examples/entraid/managedidentity_systemassigned/main.go b/examples/entraid/managedidentity_systemassigned/main.go deleted file mode 100644 index 75cb8cc..0000000 --- a/examples/entraid/managedidentity_systemassigned/main.go +++ /dev/null @@ -1,130 +0,0 @@ -package main - -import ( - "context" - "fmt" - "log" - "os" - "time" - - "config" - - entraid "github.com/redis/go-redis-entraid" - "github.com/redis/go-redis-entraid/identity" - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis/v9" -) - -func main() { - ctx := context.Background() - - // Load configuration - cfg, err := config.LoadConfig(os.Getenv("REDIS_ENDPOINTS_CONFIG_PATH")) - if err != nil { - log.Fatalf("Failed to load config: %v", err) - } - - // Create a managed identity credentials provider for system-assigned identity - cp, err := entraid.NewManagedIdentityCredentialsProvider(entraid.ManagedIdentityCredentialsProviderOptions{ - CredentialsProviderOptions: entraid.CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.001, // Set to refresh very early - LowerRefreshBound: time.Second * 1, // Set lower bound to 1 second - }, - }, - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - Scopes: cfg.GetRedisScopes(), - ManagedIdentityType: identity.SystemAssignedIdentity, - }, - }) - if err != nil { - log.Fatalf("Failed to create credentials provider: %v", err) - } - - // Create Redis client with streaming credentials provider - opts, err := redis.ParseURL(cfg.Endpoints["standalone-entraid-acl"].Endpoints[0]) - if err != nil { - log.Fatalf("Failed to parse Redis URL: %v", err) - } - opts.StreamingCredentialsProvider = cp - redisClient := redis.NewClient(opts) - - // Create second Redis client for cluster - clusterOpts, err := redis.ParseURL(cfg.Endpoints["cluster-entraid-acl"].Endpoints[0]) - if err != nil { - log.Fatalf("Failed to parse Redis URL: %v", err) - } - clusterClient := redis.NewClusterClient(&redis.ClusterOptions{ - Addrs: []string{clusterOpts.Addr}, - StreamingCredentialsProvider: cp, - }) - - // Test the connection - pong, err := redisClient.Ping(ctx).Result() - if err != nil { - log.Fatalf("Failed to ping Redis: %v", err) - } - fmt.Printf("Successfully connected to Redis standalone: %s\n", pong) - - // Test cluster connection - clusterPong, err := clusterClient.Ping(ctx).Result() - if err != nil { - log.Fatalf("Failed to ping Redis cluster: %v", err) - } - fmt.Printf("Successfully connected to Redis cluster: %s\n", clusterPong) - - // Set a test key - err = redisClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - log.Fatalf("Failed to set test key: %v", err) - } - - // Get the test key - val, err := redisClient.Get(ctx, "test-key").Result() - if err != nil { - log.Fatalf("Failed to get test key: %v", err) - } - fmt.Printf("Retrieved value from standalone: %s\n", val) - - // Set a test key in cluster - err = clusterClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - log.Fatalf("Failed to set test key in cluster: %v", err) - } - - // Get the test key from cluster - clusterVal, err := clusterClient.Get(ctx, "test-key").Result() - if err != nil { - log.Fatalf("Failed to get test key from cluster: %v", err) - } - fmt.Printf("Retrieved value from cluster: %s\n", clusterVal) - - // Wait for token to expire - fmt.Println("Waiting for token to expire...") - time.Sleep(3 * time.Second) - - // Test token refresh by retrying operations - fmt.Println("Testing token refresh...") - - // Retry standalone operations - for i := 0; i < 3; i++ { - pong, err = redisClient.Ping(ctx).Result() - if err != nil { - log.Printf("Failed to ping Redis (attempt %d): %v", i+1, err) - continue - } - fmt.Printf("Successfully pinged Redis standalone after token refresh: %s\n", pong) - break - } - - // Retry cluster operations - for i := 0; i < 3; i++ { - clusterPong, err = clusterClient.Ping(ctx).Result() - if err != nil { - log.Printf("Failed to ping Redis cluster (attempt %d): %v", i+1, err) - continue - } - fmt.Printf("Successfully pinged Redis cluster after token refresh: %s\n", clusterPong) - break - } -} diff --git a/examples/entraid/managedidentity_systemassigned_min/example_test.go b/examples/entraid/managedidentity_systemassigned_min/example_test.go deleted file mode 100644 index 29fdb49..0000000 --- a/examples/entraid/managedidentity_systemassigned_min/example_test.go +++ /dev/null @@ -1,144 +0,0 @@ -package main - -import ( - "context" - "os" - "testing" - "time" - - "config" - - entraid "github.com/redis/go-redis-entraid" - "github.com/redis/go-redis-entraid/identity" - "github.com/redis/go-redis/v9" -) - -func TestManagedIdentitySystemAssignedMin(t *testing.T) { - ctx := context.Background() - - // Load configuration - cfg, err := config.LoadConfig(os.Getenv("REDIS_ENDPOINTS_CONFIG_PATH")) - if err != nil { - t.Fatalf("Failed to load config: %v", err) - } - - // Create a managed identity credentials provider for system-assigned identity - cp, err := entraid.NewManagedIdentityCredentialsProvider(entraid.ManagedIdentityCredentialsProviderOptions{ - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - ManagedIdentityType: identity.SystemAssignedIdentity, - }, - }) - if err != nil { - t.Fatalf("Failed to create credentials provider: %v", err) - } - - // Create Redis client with streaming credentials provider - opts, err := redis.ParseURL(cfg.Endpoints["standalone-entraid-acl"].Endpoints[0]) - if err != nil { - t.Fatalf("Failed to parse Redis URL: %v", err) - } - opts.StreamingCredentialsProvider = cp - redisClient := redis.NewClient(opts) - - // Create second Redis client for cluster - clusterOpts, err := redis.ParseURL(cfg.Endpoints["cluster-entraid-acl"].Endpoints[0]) - if err != nil { - t.Fatalf("Failed to parse Redis URL: %v", err) - } - clusterClient := redis.NewClusterClient(&redis.ClusterOptions{ - Addrs: []string{clusterOpts.Addr}, - StreamingCredentialsProvider: cp, - }) - - // Test the connection - pong, err := redisClient.Ping(ctx).Result() - if err != nil { - t.Fatalf("Failed to ping Redis: %v", err) - } - if pong != "PONG" { - t.Errorf("Expected PONG, got %s", pong) - } - t.Logf("Successfully connected to Redis standalone: %s", pong) - - // Test cluster connection - clusterPong, err := clusterClient.Ping(ctx).Result() - if err != nil { - t.Fatalf("Failed to ping Redis cluster: %v", err) - } - if clusterPong != "PONG" { - t.Errorf("Expected PONG, got %s", clusterPong) - } - t.Logf("Successfully connected to Redis cluster: %s", clusterPong) - - // Set a test key - err = redisClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - t.Fatalf("Failed to set test key: %v", err) - } - - // Get the test key - val, err := redisClient.Get(ctx, "test-key").Result() - if err != nil { - t.Fatalf("Failed to get test key: %v", err) - } - if val != "test-value" { - t.Errorf("Expected test-value, got %s", val) - } - t.Logf("Retrieved value from standalone: %s", val) - - // Set a test key in cluster - err = clusterClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - t.Fatalf("Failed to set test key in cluster: %v", err) - } - - // Get the test key from cluster - clusterVal, err := clusterClient.Get(ctx, "test-key").Result() - if err != nil { - t.Fatalf("Failed to get test key from cluster: %v", err) - } - if clusterVal != "test-value" { - t.Errorf("Expected test-value, got %s", clusterVal) - } - t.Logf("Retrieved value from cluster: %s", clusterVal) - - // Wait for token to expire - t.Log("Waiting for token to expire...") - time.Sleep(3 * time.Second) - - // Test token refresh by retrying operations - t.Log("Testing token refresh...") - - // Retry standalone operations - var pingSuccess bool - for i := 0; i < 3; i++ { - pong, err = redisClient.Ping(ctx).Result() - if err != nil { - t.Logf("Failed to ping Redis (attempt %d): %v", i+1, err) - continue - } - t.Logf("Successfully pinged Redis standalone after token refresh: %s", pong) - pingSuccess = true - break - } - if !pingSuccess { - t.Error("Failed to ping Redis standalone after token refresh") - } - - // Retry cluster operations - var clusterPingSuccess bool - for i := 0; i < 3; i++ { - clusterPong, err = clusterClient.Ping(ctx).Result() - if err != nil { - t.Logf("Failed to ping Redis cluster (attempt %d): %v", i+1, err) - continue - } - t.Logf("Successfully pinged Redis cluster after token refresh: %s", clusterPong) - clusterPingSuccess = true - break - } - if !clusterPingSuccess { - t.Error("Failed to ping Redis cluster after token refresh") - } -} - diff --git a/examples/entraid/managedidentity_systemassigned_min/go.mod b/examples/entraid/managedidentity_systemassigned_min/go.mod deleted file mode 100644 index ed25d9f..0000000 --- a/examples/entraid/managedidentity_systemassigned_min/go.mod +++ /dev/null @@ -1,31 +0,0 @@ -module managedidentity_systemassigned - -go 1.23.4 - -require ( - config v0.0.0 - github.com/redis/go-redis-entraid v1.0.1 - github.com/redis/go-redis/v9 v9.9.0 -) - -replace ( - config => ../config - github.com/redis/go-redis-entraid => ../../../ -) - -require ( - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect - github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/golang-jwt/jwt/v5 v5.2.2 // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect - github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect - golang.org/x/crypto v0.38.0 // indirect - golang.org/x/net v0.40.0 // indirect - golang.org/x/sys v0.33.0 // indirect - golang.org/x/text v0.25.0 // indirect -) diff --git a/examples/entraid/managedidentity_systemassigned_min/go.sum b/examples/entraid/managedidentity_systemassigned_min/go.sum deleted file mode 100644 index 72e37aa..0000000 --- a/examples/entraid/managedidentity_systemassigned_min/go.sum +++ /dev/null @@ -1,61 +0,0 @@ -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 h1:g0EZJwz7xkXQiZAI5xi9f3WWFYBlX1CPTrR+NDToRkQ= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0/go.mod h1:XCW7KnZet0Opnr7HccfUw1PLc4CjHqpcaxW8DHklNkQ= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0-beta.1 h1:iw4+KCeCoieuKodp1d5YhAa1TU/GgogCbw8RbGvsfLA= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0-beta.1/go.mod h1:AP8cDnDTGIVvayqKAhwzpcAyTJosXpvLYNmVFJb98x8= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0/go.mod h1:JdM5psgjfBf5fo2uWOZhflPWyDBZ/O/CNAH9CtsuZE4= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.2.3 h1:BAUsn6/icUFtvUalVwCO0+hSF7qgU9DwwcEfCvtILtw= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.2.3/go.mod h1:QlAsNp4gk9zLD2wiZIvIuv699ynpZ2Tq2ZBp+6MrSEw= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 h1:ywEEhmNahHBihViHepv3xPBn1663uRv2t2q/ESv9seY= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0/go.mod h1:iZDifYGJTIgIIkYRNWPENUnqx6bJ2xnSDFI2tjwZNuY= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.1 h1:8BKxhZZLX/WosEeoCvWysmKUscfa9v8LIPEEU0JjE2o= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= -github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= -github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= -github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= -github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= -github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= -github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6 h1:IsMZxCuZqKuao2vNdfD82fjjgPLfyHLpR41Z88viRWs= -github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6/go.mod h1:3VeWNIJaW+O5xpRQbPp0Ybqu1vJd/pm7s2F473HRrkw= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/redis/go-redis/v9 v9.5.3-0.20250519143649-1628b87c162b h1:I6Y+sXfQLIUo8vkx+EcuTcAcs0ZnPceNe8cdQ0HsjQI= -github.com/redis/go-redis/v9 v9.5.3-0.20250519143649-1628b87c162b/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= -github.com/redis/go-redis/v9 v9.9.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= -golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= -golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= -golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= -golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= -golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= -golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/examples/entraid/managedidentity_systemassigned_min/main.go b/examples/entraid/managedidentity_systemassigned_min/main.go deleted file mode 100644 index 752c219..0000000 --- a/examples/entraid/managedidentity_systemassigned_min/main.go +++ /dev/null @@ -1,122 +0,0 @@ -package main - -import ( - "context" - "fmt" - "log" - "os" - "time" - - "config" - - entraid "github.com/redis/go-redis-entraid" - "github.com/redis/go-redis-entraid/identity" - "github.com/redis/go-redis/v9" -) - -func main() { - ctx := context.Background() - - // Load configuration - cfg, err := config.LoadConfig(os.Getenv("REDIS_ENDPOINTS_CONFIG_PATH")) - if err != nil { - log.Fatalf("Failed to load config: %v", err) - } - - // Create a managed identity credentials provider for system-assigned identity - cp, err := entraid.NewManagedIdentityCredentialsProvider(entraid.ManagedIdentityCredentialsProviderOptions{ - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - ManagedIdentityType: identity.SystemAssignedIdentity, - }, - }) - if err != nil { - log.Fatalf("Failed to create credentials provider: %v", err) - } - - // Create Redis client with streaming credentials provider - opts, err := redis.ParseURL(cfg.Endpoints["standalone-entraid-acl"].Endpoints[0]) - if err != nil { - log.Fatalf("Failed to parse Redis URL: %v", err) - } - opts.StreamingCredentialsProvider = cp - redisClient := redis.NewClient(opts) - - // Create second Redis client for cluster - clusterOpts, err := redis.ParseURL(cfg.Endpoints["cluster-entraid-acl"].Endpoints[0]) - if err != nil { - log.Fatalf("Failed to parse Redis URL: %v", err) - } - clusterClient := redis.NewClusterClient(&redis.ClusterOptions{ - Addrs: []string{clusterOpts.Addr}, - StreamingCredentialsProvider: cp, - }) - - // Test the connection - pong, err := redisClient.Ping(ctx).Result() - if err != nil { - log.Fatalf("Failed to ping Redis: %v", err) - } - fmt.Printf("Successfully connected to Redis standalone: %s\n", pong) - - // Test cluster connection - clusterPong, err := clusterClient.Ping(ctx).Result() - if err != nil { - log.Fatalf("Failed to ping Redis cluster: %v", err) - } - fmt.Printf("Successfully connected to Redis cluster: %s\n", clusterPong) - - // Set a test key - err = redisClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - log.Fatalf("Failed to set test key: %v", err) - } - - // Get the test key - val, err := redisClient.Get(ctx, "test-key").Result() - if err != nil { - log.Fatalf("Failed to get test key: %v", err) - } - fmt.Printf("Retrieved value from standalone: %s\n", val) - - // Set a test key in cluster - err = clusterClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - log.Fatalf("Failed to set test key in cluster: %v", err) - } - - // Get the test key from cluster - clusterVal, err := clusterClient.Get(ctx, "test-key").Result() - if err != nil { - log.Fatalf("Failed to get test key from cluster: %v", err) - } - fmt.Printf("Retrieved value from cluster: %s\n", clusterVal) - - // Wait for token to expire - fmt.Println("Waiting for token to expire...") - time.Sleep(3 * time.Second) - - // Test token refresh by retrying operations - fmt.Println("Testing token refresh...") - - // Retry standalone operations - for i := 0; i < 3; i++ { - pong, err = redisClient.Ping(ctx).Result() - if err != nil { - log.Printf("Failed to ping Redis (attempt %d): %v", i+1, err) - continue - } - fmt.Printf("Successfully pinged Redis standalone after token refresh: %s\n", pong) - break - } - - // Retry cluster operations - for i := 0; i < 3; i++ { - clusterPong, err = clusterClient.Ping(ctx).Result() - if err != nil { - log.Printf("Failed to ping Redis cluster (attempt %d): %v", i+1, err) - continue - } - fmt.Printf("Successfully pinged Redis cluster after token refresh: %s\n", clusterPong) - break - } -} diff --git a/examples/entraid/managedidentity_userassigned/example_test.go b/examples/entraid/managedidentity_userassigned/example_test.go deleted file mode 100644 index 48df1da..0000000 --- a/examples/entraid/managedidentity_userassigned/example_test.go +++ /dev/null @@ -1,153 +0,0 @@ -package main - -import ( - "context" - "os" - "testing" - "time" - - "config" - - entraid "github.com/redis/go-redis-entraid" - "github.com/redis/go-redis-entraid/identity" - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis/v9" -) - -func TestManagedIdentityUserAssigned(t *testing.T) { - ctx := context.Background() - - // Load configuration - cfg, err := config.LoadConfig(os.Getenv("REDIS_ENDPOINTS_CONFIG_PATH")) - if err != nil { - t.Fatalf("Failed to load config: %v", err) - } - - // Create a managed identity credentials provider for user-assigned identity - cp, err := entraid.NewManagedIdentityCredentialsProvider(entraid.ManagedIdentityCredentialsProviderOptions{ - CredentialsProviderOptions: entraid.CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.001, // Set to refresh very early - LowerRefreshBound: time.Second * 1, // Set lower bound to 1 second - }, - }, - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - ManagedIdentityType: identity.UserAssignedObjectID, - UserAssignedObjectID: cfg.AzureUserAssignedManagedID, - Scopes: cfg.GetRedisScopes(), - }, - }) - if err != nil { - t.Fatalf("Failed to create credentials provider: %v", err) - } - - // Create Redis client with streaming credentials provider - opts, err := redis.ParseURL(cfg.Endpoints["standalone-entraid-acl"].Endpoints[0]) - if err != nil { - t.Fatalf("Failed to parse Redis URL: %v", err) - } - opts.StreamingCredentialsProvider = cp - redisClient := redis.NewClient(opts) - - // Create second Redis client for cluster - clusterOpts, err := redis.ParseURL(cfg.Endpoints["cluster-entraid-acl"].Endpoints[0]) - if err != nil { - t.Fatalf("Failed to parse Redis URL: %v", err) - } - clusterClient := redis.NewClusterClient(&redis.ClusterOptions{ - Addrs: []string{clusterOpts.Addr}, - StreamingCredentialsProvider: cp, - }) - - // Test the connection - pong, err := redisClient.Ping(ctx).Result() - if err != nil { - t.Fatalf("Failed to ping Redis: %v", err) - } - if pong != "PONG" { - t.Errorf("Expected PONG, got %s", pong) - } - t.Logf("Successfully connected to Redis standalone: %s", pong) - - // Test cluster connection - clusterPong, err := clusterClient.Ping(ctx).Result() - if err != nil { - t.Fatalf("Failed to ping Redis cluster: %v", err) - } - if clusterPong != "PONG" { - t.Errorf("Expected PONG, got %s", clusterPong) - } - t.Logf("Successfully connected to Redis cluster: %s", clusterPong) - - // Set a test key - err = redisClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - t.Fatalf("Failed to set test key: %v", err) - } - - // Get the test key - val, err := redisClient.Get(ctx, "test-key").Result() - if err != nil { - t.Fatalf("Failed to get test key: %v", err) - } - if val != "test-value" { - t.Errorf("Expected test-value, got %s", val) - } - t.Logf("Retrieved value from standalone: %s", val) - - // Set a test key in cluster - err = clusterClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - t.Fatalf("Failed to set test key in cluster: %v", err) - } - - // Get the test key from cluster - clusterVal, err := clusterClient.Get(ctx, "test-key").Result() - if err != nil { - t.Fatalf("Failed to get test key from cluster: %v", err) - } - if clusterVal != "test-value" { - t.Errorf("Expected test-value, got %s", clusterVal) - } - t.Logf("Retrieved value from cluster: %s", clusterVal) - - // Wait for token to expire - t.Log("Waiting for token to expire...") - time.Sleep(3 * time.Second) - - // Test token refresh by retrying operations - t.Log("Testing token refresh...") - - // Retry standalone operations - var pingSuccess bool - for i := 0; i < 3; i++ { - pong, err = redisClient.Ping(ctx).Result() - if err != nil { - t.Logf("Failed to ping Redis (attempt %d): %v", i+1, err) - continue - } - t.Logf("Successfully pinged Redis standalone after token refresh: %s", pong) - pingSuccess = true - break - } - if !pingSuccess { - t.Error("Failed to ping Redis standalone after token refresh") - } - - // Retry cluster operations - var clusterPingSuccess bool - for i := 0; i < 3; i++ { - clusterPong, err = clusterClient.Ping(ctx).Result() - if err != nil { - t.Logf("Failed to ping Redis cluster (attempt %d): %v", i+1, err) - continue - } - t.Logf("Successfully pinged Redis cluster after token refresh: %s", clusterPong) - clusterPingSuccess = true - break - } - if !clusterPingSuccess { - t.Error("Failed to ping Redis cluster after token refresh") - } -} - diff --git a/examples/entraid/managedidentity_userassigned/go.mod b/examples/entraid/managedidentity_userassigned/go.mod deleted file mode 100644 index d1e2c71..0000000 --- a/examples/entraid/managedidentity_userassigned/go.mod +++ /dev/null @@ -1,31 +0,0 @@ -module managedidentity_userassigned - -go 1.23.4 - -require ( - config v0.0.0 - github.com/redis/go-redis-entraid v1.0.2 - github.com/redis/go-redis/v9 v9.9.0 -) - -replace ( - config => ../config - github.com/redis/go-redis-entraid => ../../../ -) - -require ( - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect - github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/golang-jwt/jwt/v5 v5.2.2 // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect - github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect - golang.org/x/crypto v0.38.0 // indirect - golang.org/x/net v0.40.0 // indirect - golang.org/x/sys v0.33.0 // indirect - golang.org/x/text v0.25.0 // indirect -) diff --git a/examples/entraid/managedidentity_userassigned/go.sum b/examples/entraid/managedidentity_userassigned/go.sum deleted file mode 100644 index 2eb0a1f..0000000 --- a/examples/entraid/managedidentity_userassigned/go.sum +++ /dev/null @@ -1,51 +0,0 @@ -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0 h1:j8BorDEigD8UFOSZQiSqAMOOleyQOOQPnUAwV+Ls1gA= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0/go.mod h1:JdM5psgjfBf5fo2uWOZhflPWyDBZ/O/CNAH9CtsuZE4= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= -github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= -github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= -github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= -github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= -github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU= -github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/redis/go-redis/v9 v9.9.0 h1:URbPQ4xVQSQhZ27WMQVmZSo3uT3pL+4IdHVcYq2nVfM= -github.com/redis/go-redis/v9 v9.9.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= -golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/examples/entraid/managedidentity_userassigned/main.go b/examples/entraid/managedidentity_userassigned/main.go deleted file mode 100644 index 06ab728..0000000 --- a/examples/entraid/managedidentity_userassigned/main.go +++ /dev/null @@ -1,131 +0,0 @@ -package main - -import ( - "context" - "fmt" - "log" - "os" - "time" - - "config" - - entraid "github.com/redis/go-redis-entraid" - "github.com/redis/go-redis-entraid/identity" - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis/v9" -) - -func main() { - ctx := context.Background() - - // Load configuration - cfg, err := config.LoadConfig(os.Getenv("REDIS_ENDPOINTS_CONFIG_PATH")) - if err != nil { - log.Fatalf("Failed to load config: %v", err) - } - - // Create a managed identity credentials provider for user-assigned identity - cp, err := entraid.NewManagedIdentityCredentialsProvider(entraid.ManagedIdentityCredentialsProviderOptions{ - CredentialsProviderOptions: entraid.CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.001, // Set to refresh very early - LowerRefreshBound: time.Second * 1, // Set lower bound to 1 second - }, - }, - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - ManagedIdentityType: identity.UserAssignedObjectID, - UserAssignedObjectID: cfg.AzureUserAssignedManagedID, - Scopes: cfg.GetRedisScopes(), - }, - }) - if err != nil { - log.Fatalf("Failed to create credentials provider: %v", err) - } - - // Create Redis client with streaming credentials provider - opts, err := redis.ParseURL(cfg.Endpoints["standalone-entraid-acl"].Endpoints[0]) - if err != nil { - log.Fatalf("Failed to parse Redis URL: %v", err) - } - opts.StreamingCredentialsProvider = cp - redisClient := redis.NewClient(opts) - - // Create second Redis client for cluster - clusterOpts, err := redis.ParseURL(cfg.Endpoints["cluster-entraid-acl"].Endpoints[0]) - if err != nil { - log.Fatalf("Failed to parse Redis URL: %v", err) - } - clusterClient := redis.NewClusterClient(&redis.ClusterOptions{ - Addrs: []string{clusterOpts.Addr}, - StreamingCredentialsProvider: cp, - }) - - // Test the connection - pong, err := redisClient.Ping(ctx).Result() - if err != nil { - log.Fatalf("Failed to ping Redis: %v", err) - } - fmt.Printf("Successfully connected to Redis standalone: %s\n", pong) - - // Test cluster connection - clusterPong, err := clusterClient.Ping(ctx).Result() - if err != nil { - log.Fatalf("Failed to ping Redis cluster: %v", err) - } - fmt.Printf("Successfully connected to Redis cluster: %s\n", clusterPong) - - // Set a test key - err = redisClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - log.Fatalf("Failed to set test key: %v", err) - } - - // Get the test key - val, err := redisClient.Get(ctx, "test-key").Result() - if err != nil { - log.Fatalf("Failed to get test key: %v", err) - } - fmt.Printf("Retrieved value from standalone: %s\n", val) - - // Set a test key in cluster - err = clusterClient.Set(ctx, "test-key", "test-value", 0).Err() - if err != nil { - log.Fatalf("Failed to set test key in cluster: %v", err) - } - - // Get the test key from cluster - clusterVal, err := clusterClient.Get(ctx, "test-key").Result() - if err != nil { - log.Fatalf("Failed to get test key from cluster: %v", err) - } - fmt.Printf("Retrieved value from cluster: %s\n", clusterVal) - - // Wait for token to expire - fmt.Println("Waiting for token to expire...") - time.Sleep(3 * time.Second) - - // Test token refresh by retrying operations - fmt.Println("Testing token refresh...") - - // Retry standalone operations - for i := 0; i < 3; i++ { - pong, err = redisClient.Ping(ctx).Result() - if err != nil { - log.Printf("Failed to ping Redis (attempt %d): %v", i+1, err) - continue - } - fmt.Printf("Successfully pinged Redis standalone after token refresh: %s\n", pong) - break - } - - // Retry cluster operations - for i := 0; i < 3; i++ { - clusterPong, err = clusterClient.Ping(ctx).Result() - if err != nil { - log.Printf("Failed to ping Redis cluster (attempt %d): %v", i+1, err) - continue - } - fmt.Printf("Successfully pinged Redis cluster after token refresh: %s\n", clusterPong) - break - } -} diff --git a/examples/entraid/run_example_tests.sh b/examples/entraid/run_example_tests.sh deleted file mode 100755 index 83a3826..0000000 --- a/examples/entraid/run_example_tests.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash -# Env should be set by the executor of the script -# Those examples are configured and executed in a private environment -# to verify the entraid integration is working as expected. -# Common environment variables -#export AZURE_REDIS_SCOPES="https://redis.azure.com/.default" -#export REDIS_ENDPOINTS_CONFIG_PATH="endpoints.json" - -# Exit on any error -set -e - -# Function to run tests for an example -run_example_test() { - local example_dir=$1 - echo "Running tests for $example_dir..." - - if [ ! -d "$example_dir" ]; then - echo "Error: Directory $example_dir does not exist" - return 1 - fi - - if [ ! -f "$example_dir/example_test.go" ]; then - echo "Warning: example_test.go not found in $example_dir, skipping..." - return 0 - fi - - pushd "$example_dir" > /dev/null - go get github.com/redis/go-redis/v9@master - go mod tidy - - # Run tests with verbose output and JSON format for potential CTRF conversion - if ! go test -v -timeout 30m .; then - echo "Error: $example_dir tests failed" - popd > /dev/null - return 1 - fi - - popd > /dev/null - echo "----------------------------------------" - return 0 -} - -# Track overall success -failed_tests=() -skipped_tests=() - -# Run all example tests in the directory -for example in */; do - # Skip config directory as it's not an example - if [ "$example" = "config/" ]; then - continue - fi - - # Skip runscript_test as it already has its own test structure - if [ "$example" = "runscript_test/" ]; then - continue - fi - - # Remove trailing slash - example=${example%/} - - # Check if example_test.go exists - if [ ! -f "$example/example_test.go" ]; then - skipped_tests+=("$example") - echo "Skipping $example (no example_test.go found)" - continue - fi - - if ! run_example_test "$example"; then - failed_tests+=("$example") - fi -done - -# Report results -echo "========================================" -echo "Test Results Summary" -echo "========================================" - -if [ ${#skipped_tests[@]} -gt 0 ]; then - echo "Skipped tests (no example_test.go):" - printf ' - %s\n' "${skipped_tests[@]}" - echo "" -fi - -if [ ${#failed_tests[@]} -eq 0 ]; then - echo "✓ All example tests completed successfully!" - exit 0 -else - echo "✗ The following example tests failed:" - printf ' - %s\n' "${failed_tests[@]}" - exit 1 -fi - diff --git a/examples/entraid/run_examples.sh b/examples/entraid/run_examples.sh deleted file mode 100755 index ae82a7b..0000000 --- a/examples/entraid/run_examples.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash -# Env should be set by the executor of the script -# Those examples are configured and executed in a private enviroment -# to verify the entraid intragration is working as expected. -# Common environment vddkariables -#export AZURE_REDIS_SCOPES="https://redis.azure.com/.default" -#export REDIS_ENDPOINVkTS_CONFIG_PATH="endpoints.json" - -# Exit on any error -set -e - -# Function to run an example -run_example() { - local example_dir=$1 - echo "Running $example_dir example..." - - if [ ! -d "$example_dir" ]; then - echo "Error: Directory $example_dir does not exist" - return 1 - fi - - if [ ! -f "$example_dir/main.go" ]; then - echo "Error: main.go not found in $example_dir" - return 1 - fi - - pushd "$example_dir" > /dev/null - go get github.com/redis/go-redis/v9@master - go mod tidy - if ! go run main.go; then - echo "Error: $example_dir example failed" - popd > /dev/null - return 1 - fi - popd > /dev/null - echo "----------------------------------------" - return 0 -} - -# Track overall success -failed_examples=() - -# Run all examples in the directory -for example in */; do - # Skip config directory as it's not an example - if [ "$example" = "config/" ]; then - continue - fi - - # Remove trailing slash - example=${example%/} - - if ! run_example "$example"; then - failed_examples+=("$example") - fi -done - -# Report results -echo "----------------------------------------" -if [ ${#failed_examples[@]} -eq 0 ]; then - echo "All examples completed successfully!" - exit 0 -else - echo "The following examples failed:" - printf '%s\n' "${failed_examples[@]}" - exit 1 -fi diff --git a/examples/entraid/runscript_test/main.go b/examples/entraid/runscript_test/main.go deleted file mode 100644 index e1accfe..0000000 --- a/examples/entraid/runscript_test/main.go +++ /dev/null @@ -1,11 +0,0 @@ -package main - -import "fmt" - -func RunScript() string { - return "OK" -} - -func main() { - fmt.Println(RunScript()) -} diff --git a/examples/entraid/runscript_test/main_test.go b/examples/entraid/runscript_test/main_test.go deleted file mode 100644 index 39ecceb..0000000 --- a/examples/entraid/runscript_test/main_test.go +++ /dev/null @@ -1,11 +0,0 @@ -package main - -import "testing" - -func TestRunScript(t *testing.T) { - got := RunScript() - want := "OK" - if got != want { - t.Errorf("RunScript() = %q, want %q", got, want) - } -} diff --git a/go.mod b/go.mod deleted file mode 100644 index 85882c7..0000000 --- a/go.mod +++ /dev/null @@ -1,31 +0,0 @@ -module github.com/redis/go-redis-entraid - -go 1.23.0 - -toolchain go1.23.4 - -require ( - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0 - github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 - github.com/golang-jwt/jwt/v5 v5.2.2 - github.com/redis/go-redis/v9 v9.9.0 - github.com/stretchr/testify v1.10.0 -) - -require ( - github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect - github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect - github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/stretchr/objx v0.5.2 // indirect - golang.org/x/crypto v0.38.0 // indirect - golang.org/x/net v0.40.0 // indirect - golang.org/x/sys v0.33.0 // indirect - golang.org/x/text v0.25.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect -) diff --git a/go.sum b/go.sum deleted file mode 100644 index c2556c1..0000000 --- a/go.sum +++ /dev/null @@ -1,60 +0,0 @@ -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0 h1:j8BorDEigD8UFOSZQiSqAMOOleyQOOQPnUAwV+Ls1gA= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.0/go.mod h1:JdM5psgjfBf5fo2uWOZhflPWyDBZ/O/CNAH9CtsuZE4= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= -github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= -github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= -github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= -github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= -github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= -github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= -github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU= -github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/redis/go-redis/v9 v9.9.0 h1:URbPQ4xVQSQhZ27WMQVmZSo3uT3pL+4IdHVcYq2nVfM= -github.com/redis/go-redis/v9 v9.9.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= -golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/identity/authority_configuration.go b/identity/authority_configuration.go deleted file mode 100644 index bb229dd..0000000 --- a/identity/authority_configuration.go +++ /dev/null @@ -1,59 +0,0 @@ -package identity - -import "fmt" - -const ( - // AuthorityTypeDefault is the default authority type. - // This is used to specify the authority type when requesting a token. - AuthorityTypeDefault = "default" - // AuthorityTypeMultiTenant is the multi-tenant authority type. - // This is used to specify the multi-tenant authority type when requesting a token. - // This type of authority is used to authenticate the identity when requesting a token. - AuthorityTypeMultiTenant = "multi-tenant" - // AuthorityTypeCustom is the custom authority type. - // This is used to specify the custom authority type when requesting a token. - AuthorityTypeCustom = "custom" -) - -// AuthorityConfiguration represents the authority configuration for the identity provider. -// It is used to configure the authority type and authority URL when requesting a token. -type AuthorityConfiguration struct { - // AuthorityType is the type of authority used to authenticate with the identity provider. - // This can be either "default", "multi-tenant", or "custom". - AuthorityType string - - // Authority is the authority used to authenticate with the identity provider. - // This is typically the URL of the identity provider. - // For example, "https://login.microsoftonline.com/{tenantID}/v2.0" - Authority string - - // TenantID is the tenant ID of the identity provider. - // This is used to identify the tenant when requesting a token. - // This is typically the ID of the Azure Active Directory tenant. - TenantID string -} - -// getAuthority returns the authority URL based on the authority type. -// The authority type can be either "default", "multi-tenant", or "custom". -func (a AuthorityConfiguration) getAuthority() (string, error) { - if a.AuthorityType == "" { - a.AuthorityType = AuthorityTypeDefault - } - - switch a.AuthorityType { - case AuthorityTypeDefault: - return "https://login.microsoftonline.com/common", nil - case AuthorityTypeMultiTenant: - if a.TenantID == "" { - return "", fmt.Errorf("tenant ID is required when using multi-tenant authority type") - } - return fmt.Sprintf("https://login.microsoftonline.com/%s", a.TenantID), nil - case AuthorityTypeCustom: - if a.Authority == "" { - return "", fmt.Errorf("authority is required when using custom authority type") - } - return a.Authority, nil - default: - return "", fmt.Errorf("invalid authority type: %s", a.AuthorityType) - } -} diff --git a/identity/authority_configuration_test.go b/identity/authority_configuration_test.go deleted file mode 100644 index 7ae4a67..0000000 --- a/identity/authority_configuration_test.go +++ /dev/null @@ -1,160 +0,0 @@ -package identity - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestAuthorityConfiguration(t *testing.T) { - t.Parallel() - tests := []struct { - name string - authorityType string - tenantID string - authority string - expected string - expectError bool - }{ - { - name: "Default Authority", - authorityType: AuthorityTypeDefault, - expected: "https://login.microsoftonline.com/common", - expectError: false, - }, - { - name: "Multi-Tenant Authority", - authorityType: AuthorityTypeMultiTenant, - tenantID: "12345", - expected: "https://login.microsoftonline.com/12345", - expectError: false, - }, - { - name: "Custom Authority", - authorityType: AuthorityTypeCustom, - authority: "https://custom-authority.com", - expected: "https://custom-authority.com", - expectError: false, - }, - { - name: "Invalid Authority Type", - authorityType: "invalid", - expectError: true, - }, - { - name: "Missing Tenant ID for Multi-Tenant", - authorityType: AuthorityTypeMultiTenant, - expectError: true, - }, - { - name: "Missing Authority for Custom", - authorityType: AuthorityTypeCustom, - expectError: true, - }, - { - name: "Default Authority Type with Tenant ID", - authorityType: AuthorityTypeDefault, - tenantID: "12345", - expected: "https://login.microsoftonline.com/common", - expectError: false, - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - ac := AuthorityConfiguration{ - AuthorityType: test.authorityType, - TenantID: test.tenantID, - Authority: test.authority, - } - result, err := ac.getAuthority() - if test.expectError { - assert.Error(t, err) - } else { - assert.NoError(t, err) - assert.Equal(t, test.expected, result) - } - }) - } -} - -func TestAuthorityConfigurationDefault(t *testing.T) { - t.Parallel() - ac := AuthorityConfiguration{} - result, err := ac.getAuthority() - assert.NoError(t, err) - assert.Equal(t, "https://login.microsoftonline.com/common", result) -} - -func TestAuthorityConfigurationMultiTenant(t *testing.T) { - t.Parallel() - ac := AuthorityConfiguration{ - AuthorityType: AuthorityTypeMultiTenant, - TenantID: "12345", - } - result, err := ac.getAuthority() - assert.NoError(t, err) - assert.Equal(t, "https://login.microsoftonline.com/12345", result) -} - -func TestAuthorityConfigurationCustom(t *testing.T) { - t.Parallel() - ac := AuthorityConfiguration{ - AuthorityType: AuthorityTypeCustom, - Authority: "https://custom-authority.com", - } - result, err := ac.getAuthority() - assert.NoError(t, err) - assert.Equal(t, "https://custom-authority.com", result) -} - -func TestAuthorityConfigurationInvalid(t *testing.T) { - t.Parallel() - ac := AuthorityConfiguration{ - AuthorityType: "invalid", - } - result, err := ac.getAuthority() - assert.Error(t, err) - assert.Equal(t, "", result) -} - -func TestAuthorityConfigurationMissingTenantID(t *testing.T) { - t.Parallel() - ac := AuthorityConfiguration{ - AuthorityType: AuthorityTypeMultiTenant, - } - result, err := ac.getAuthority() - assert.Error(t, err) - assert.Equal(t, "", result) -} - -func TestAuthorityConfigurationMissingAuthority(t *testing.T) { - t.Parallel() - ac := AuthorityConfiguration{ - AuthorityType: AuthorityTypeCustom, - } - result, err := ac.getAuthority() - assert.Error(t, err) - assert.Equal(t, "", result) -} - -func TestAuthorityConfigurationDefaultAuthorityType(t *testing.T) { - t.Parallel() - ac := AuthorityConfiguration{ - TenantID: "12345", - } - result, err := ac.getAuthority() - assert.NoError(t, err) - assert.Equal(t, "https://login.microsoftonline.com/common", result) -} - -func TestAuthorityConfigurationDefaultAuthorityTypeWithTenantID(t *testing.T) { - t.Parallel() - ac := AuthorityConfiguration{ - AuthorityType: AuthorityTypeDefault, - TenantID: "12345", - } - result, err := ac.getAuthority() - assert.NoError(t, err) - assert.Equal(t, "https://login.microsoftonline.com/common", result) -} diff --git a/identity/azure_default_identity_provider.go b/identity/azure_default_identity_provider.go deleted file mode 100644 index 0a73cc5..0000000 --- a/identity/azure_default_identity_provider.go +++ /dev/null @@ -1,77 +0,0 @@ -package identity - -import ( - "context" - "fmt" - - "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" - "github.com/Azure/azure-sdk-for-go/sdk/azidentity" - "github.com/redis/go-redis-entraid/shared" -) - -// DefaultAzureIdentityProviderOptions represents the options for the DefaultAzureIdentityProvider. -type DefaultAzureIdentityProviderOptions struct { - // AzureOptions is the options used to configure the Azure identity provider. - AzureOptions *azidentity.DefaultAzureCredentialOptions - // Scopes is the list of scopes used to request a token from the identity provider. - Scopes []string - - // credFactory is a factory for creating the default Azure credential. - // This is used for testing purposes, to allow mocking the credential creation. - // If not provided, the default implementation - azidentity.NewDefaultAzureCredential will be used - credFactory credFactory -} - -type credFactory interface { - NewDefaultAzureCredential(options *azidentity.DefaultAzureCredentialOptions) (azureCredential, error) -} - -type azureCredential interface { - GetToken(ctx context.Context, options policy.TokenRequestOptions) (azcore.AccessToken, error) -} - -type defaultCredFactory struct{} - -func (d *defaultCredFactory) NewDefaultAzureCredential(options *azidentity.DefaultAzureCredentialOptions) (azureCredential, error) { - return azidentity.NewDefaultAzureCredential(options) -} - -type DefaultAzureIdentityProvider struct { - options *azidentity.DefaultAzureCredentialOptions - credFactory credFactory - scopes []string -} - -// NewDefaultAzureIdentityProvider creates a new DefaultAzureIdentityProvider. -func NewDefaultAzureIdentityProvider(opts DefaultAzureIdentityProviderOptions) (*DefaultAzureIdentityProvider, error) { - if opts.Scopes == nil { - opts.Scopes = []string{RedisScopeDefault} - } - - return &DefaultAzureIdentityProvider{ - options: opts.AzureOptions, - scopes: opts.Scopes, - credFactory: opts.credFactory, - }, nil -} - -// RequestToken requests a token from the Azure Default Identity provider. -// It returns the token, the expiration time, and an error if any. -func (a *DefaultAzureIdentityProvider) RequestToken(ctx context.Context) (shared.IdentityProviderResponse, error) { - credFactory := a.credFactory - if credFactory == nil { - credFactory = &defaultCredFactory{} - } - cred, err := credFactory.NewDefaultAzureCredential(a.options) - if err != nil { - return nil, fmt.Errorf("failed to create default azure credential: %w", err) - } - - token, err := cred.GetToken(ctx, policy.TokenRequestOptions{Scopes: a.scopes}) - if err != nil { - return nil, fmt.Errorf("failed to get token: %w", err) - } - - return shared.NewIDPResponse(shared.ResponseTypeAccessToken, &token) -} diff --git a/identity/azure_default_identity_provider_test.go b/identity/azure_default_identity_provider_test.go deleted file mode 100644 index 7a2d3dd..0000000 --- a/identity/azure_default_identity_provider_test.go +++ /dev/null @@ -1,108 +0,0 @@ -package identity - -import ( - "context" - "testing" - - "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" - "github.com/redis/go-redis-entraid/shared" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" -) - -func TestNewDefaultAzureIdentityProvider(t *testing.T) { - t.Parallel() - // Create a new DefaultAzureIdentityProvider with default options - provider, err := NewDefaultAzureIdentityProvider(DefaultAzureIdentityProviderOptions{}) - if err != nil { - t.Fatalf("failed to create DefaultAzureIdentityProvider: %v", err) - } - - // Check if the provider is not nil - if provider == nil { - t.Fatal("provider should not be nil") - } - - if provider.scopes == nil { - t.Fatal("provider.scopes should not be nil") - } - - assert.Contains(t, provider.scopes, RedisScopeDefault, "provider should contain default scope") -} -func TestAzureDefaultIdentityProvider_RequestToken(t *testing.T) { - t.Parallel() - provider, err := NewDefaultAzureIdentityProvider(DefaultAzureIdentityProviderOptions{}) - if err != nil { - t.Fatalf("failed to create DefaultAzureIdentityProvider: %v", err) - } - - // Request a token from the provider in incorrect environment - // should fail. - token, err := provider.RequestToken(context.Background()) - assert.Nil(t, token, "token should be nil") - assert.Error(t, err, "failed to request token") - - // use mockAzureCredential to simulate the environment - mToken := azcore.AccessToken{ - Token: testJWTToken, - } - mCreds := &mockAzureCredential{} - mCreds.On("GetToken", mock.Anything, mock.Anything).Return(mToken, nil) - mCredFactory := &mockCredFactory{} - mCredFactory.On("NewDefaultAzureCredential", mock.Anything).Return(mCreds, nil) - provider.credFactory = mCredFactory - resp, err := provider.RequestToken(context.Background()) - assert.NotNil(t, resp, "resp should not be nil") - assert.NoError(t, err, "failed to request resp") - assert.Equal(t, shared.ResponseTypeAccessToken, resp.Type(), "resp type should be access resp") - atoken, err := resp.(shared.AccessTokenIDPResponse).AccessToken() - assert.NotNil(t, atoken, "token should not be nil") - assert.NoError(t, err, "failed to get token") - assert.Equal(t, mToken, atoken, "access resp should be equal to testJWTToken") -} - -func TestAzureDefaultIdentityProvider_RequestTokenWithScopes(t *testing.T) { - // Create a new DefaultAzureIdentityProvider with custom scopes - scopes := []string{"https://example.com/.default"} - provider, err := NewDefaultAzureIdentityProvider(DefaultAzureIdentityProviderOptions{ - Scopes: scopes, - }) - if err != nil { - t.Fatalf("failed to create DefaultAzureIdentityProvider: %v", err) - } - - t.Run("RequestToken with custom scopes", func(t *testing.T) { - // Request a token from the provider - token, err := provider.RequestToken(context.Background()) - assert.Nil(t, token, "token should be nil") - assert.Error(t, err, "failed to request token") - - // use mockAzureCredential to simulate the environment - mToken := azcore.AccessToken{ - Token: testJWTToken, - } - mCreds := &mockAzureCredential{} - mCreds.On("GetToken", mock.Anything, policy.TokenRequestOptions{Scopes: scopes}).Return(mToken, nil) - mCredFactory := &mockCredFactory{} - mCredFactory.On("NewDefaultAzureCredential", mock.Anything).Return(mCreds, nil) - provider.credFactory = mCredFactory - resp, err := provider.RequestToken(context.Background()) - assert.NotNil(t, resp, "resp should not be nil") - assert.NoError(t, err, "failed to request resp") - assert.Equal(t, shared.ResponseTypeAccessToken, resp.Type(), "resp type should be access resp") - atoken, err := resp.(shared.AccessTokenIDPResponse).AccessToken() - assert.NotNil(t, atoken, "token should not be nil") - assert.NoError(t, err, "failed to get token") - assert.Equal(t, mToken, atoken, "access resp should be equal to testJWTToken") - }) - t.Run("RequestToken with error from credFactory", func(t *testing.T) { - // use mockAzureCredential to simulate the environment - mCredFactory := &mockCredFactory{} - mCredFactory.On("NewDefaultAzureCredential", mock.Anything).Return(nil, assert.AnError) - provider.credFactory = mCredFactory - resp, err := provider.RequestToken(context.Background()) - assert.Nil(t, resp, "resp should be nil") - assert.Error(t, err, "failed to request resp") - }) -} diff --git a/identity/confidential_identity_provider.go b/identity/confidential_identity_provider.go deleted file mode 100644 index 10f1e0f..0000000 --- a/identity/confidential_identity_provider.go +++ /dev/null @@ -1,169 +0,0 @@ -package identity - -import ( - "context" - "crypto" - "crypto/x509" - "fmt" - - "github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential" - "github.com/redis/go-redis-entraid/shared" -) - -// ConfidentialIdentityProviderOptions represents the options for the confidential identity provider. -type ConfidentialIdentityProviderOptions struct { - // ClientID is the client ID used to authenticate with the identity provider. - ClientID string - - // CredentialsType is the type of credentials used to authenticate with the identity provider. - // This can be either "ClientSecret" or "ClientCertificate". - CredentialsType string - - // ClientSecret is the client secret used to authenticate with the identity provider. - ClientSecret string - - // ClientCert is the client certificate used to authenticate with the identity provider. - ClientCert []*x509.Certificate - // ClientPrivateKey is the private key used to authenticate with the identity provider. - ClientPrivateKey crypto.PrivateKey - - // Scopes is the list of scopes used to request a token from the identity provider. - Scopes []string - - // Authority is the authority used to authenticate with the identity provider. - Authority AuthorityConfiguration - - // confidentialCredFactory is a factory for creating the confidential credential. - // This is used for testing purposes, to allow mocking the credential creation. - confidentialCredFactory confidentialCredFactory -} - -// ConfidentialIdentityProvider represents a confidential identity provider. -type ConfidentialIdentityProvider struct { - // clientID is the client ID used to authenticate with the identity provider. - clientID string - - // credential is the credential used to authenticate with the identity provider. - credential confidential.Credential - - // scopes is the list of scopes used to request a token from the identity provider. - scopes []string - - // client confidential is the client used to request a token from the identity provider. - client confidentialTokenClient -} - -// confidentialCredFacotory is a factory for creating the confidential credential. -// Introduced for testing purposes. This allows mocking the credential creation, default behavior is to use the confidential.NewCredFromSecret and confidential.NewCredFromCert methods. -type confidentialCredFactory interface { - NewCredFromSecret(clientSecret string) (confidential.Credential, error) - NewCredFromCert(clientCert []*x509.Certificate, clientPrivateKey crypto.PrivateKey) (confidential.Credential, error) -} - -// confidentialTokenClient is an interface that defines the methods for a confidential token client. -// It is used to acquire a token using the client credentials. -// Introduced for testing purposes. This allows mocking the token client, default behavior is to use the -// client returned by confidential.New method. -type confidentialTokenClient interface { - // AcquireTokenByCredential acquires a token using the client credentials. - // It returns the token and an error if any. - AcquireTokenByCredential(ctx context.Context, scopes []string, opts ...confidential.AcquireByCredentialOption) (confidential.AuthResult, error) -} - -type defaultConfidentialCredFactory struct{} - -func (d *defaultConfidentialCredFactory) NewCredFromSecret(clientSecret string) (confidential.Credential, error) { - return confidential.NewCredFromSecret(clientSecret) -} - -func (d *defaultConfidentialCredFactory) NewCredFromCert(clientCert []*x509.Certificate, clientPrivateKey crypto.PrivateKey) (confidential.Credential, error) { - return confidential.NewCredFromCert(clientCert, clientPrivateKey) -} - -// NewConfidentialIdentityProvider creates a new confidential identity provider. -// It is used to configure the identity provider when requesting a token. -// It is used to specify the client ID, tenant ID, and scopes for the identity. -// It is also used to specify the type of credentials used to authenticate with the identity provider. -// The credentials can be either a client secret or a client certificate. -// The authority is used to authenticate with the identity provider. -func NewConfidentialIdentityProvider(opts ConfidentialIdentityProviderOptions) (*ConfidentialIdentityProvider, error) { - var credential confidential.Credential - var credFactory confidentialCredFactory - var authority string - var err error - - if opts.ClientID == "" { - return nil, fmt.Errorf("client ID is required") - } - - if opts.CredentialsType != ClientSecretCredentialType && opts.CredentialsType != ClientCertificateCredentialType { - return nil, fmt.Errorf("invalid credentials type") - } - - // Get the authority from the authority configuration. - authority, err = opts.Authority.getAuthority() - if err != nil { - return nil, fmt.Errorf("failed to get authority: %w", err) - } - - credFactory = &defaultConfidentialCredFactory{} - if opts.confidentialCredFactory != nil { - credFactory = opts.confidentialCredFactory - } - - switch opts.CredentialsType { - case ClientSecretCredentialType: - // ClientSecretCredentialType is the type of credentials that uses a client secret to authenticate. - if opts.ClientSecret == "" { - return nil, fmt.Errorf("client secret is required when using client secret credentials") - } - - credential, err = credFactory.NewCredFromSecret(opts.ClientSecret) - if err != nil { - return nil, fmt.Errorf("failed to create client secret credential: %w", err) - } - case ClientCertificateCredentialType: - // ClientCertificateCredentialType is the type of credentials that uses a client certificate to authenticate. - if len(opts.ClientCert) == 0 { - return nil, fmt.Errorf("non-empty client certificate is required when using client certificate credentials") - } - if opts.ClientPrivateKey == nil { - return nil, fmt.Errorf("client private key is required when using client certificate credentials") - } - credential, err = credFactory.NewCredFromCert(opts.ClientCert, opts.ClientPrivateKey) - if err != nil { - return nil, fmt.Errorf("failed to create client certificate credential: %w", err) - } - } - - client, err := confidential.New(authority, opts.ClientID, credential) - if err != nil { - return nil, fmt.Errorf("failed to create client: %w", err) - } - - if opts.Scopes == nil { - opts.Scopes = []string{RedisScopeDefault} - } - - return &ConfidentialIdentityProvider{ - clientID: opts.ClientID, - credential: credential, - scopes: opts.Scopes, - client: &client, - }, nil -} - -// RequestToken requests a token from the identity provider. -// It returns the identity provider response, including the auth result. -func (c *ConfidentialIdentityProvider) RequestToken(ctx context.Context) (shared.IdentityProviderResponse, error) { - if c.client == nil { - return nil, fmt.Errorf("client is not initialized") - } - - result, err := c.client.AcquireTokenByCredential(ctx, c.scopes) - if err != nil { - return nil, fmt.Errorf("failed to acquire token: %w", err) - } - - return shared.NewIDPResponse(shared.ResponseTypeAuthResult, &result) -} diff --git a/identity/confidential_identity_provider_test.go b/identity/confidential_identity_provider_test.go deleted file mode 100644 index ec18921..0000000 --- a/identity/confidential_identity_provider_test.go +++ /dev/null @@ -1,311 +0,0 @@ -package identity - -import ( - "context" - "crypto/x509" - "fmt" - "testing" - "time" - - "github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential" - "github.com/redis/go-redis-entraid/shared" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" -) - -func TestNewConfidentialIdentityProvider(t *testing.T) { - t.Run("base", func(t *testing.T) { - t.Parallel() - opts := ConfidentialIdentityProviderOptions{ - ClientID: "client-id", - CredentialsType: "ClientSecret", - ClientSecret: "client-secret", - Scopes: []string{"scope1", "scope2"}, - Authority: AuthorityConfiguration{}, - } - provider, err := NewConfidentialIdentityProvider(opts) - if err != nil { - t.Errorf("NewConfidentialIdentityProvider() error = %v", err) - return - } - if provider == nil { - t.Errorf("NewConfidentialIdentityProvider() provider = nil") - return - } - }) - - t.Run("with client certificate", func(t *testing.T) { - t.Parallel() - credFactory := &mockConfidentialCredentialFactory{} - opts := ConfidentialIdentityProviderOptions{ - ClientID: "client-id", - CredentialsType: "ClientCertificate", - ClientCert: []*x509.Certificate{{}}, - ClientPrivateKey: "private-key", - Scopes: []string{"scope1", "scope2"}, - Authority: AuthorityConfiguration{}, - confidentialCredFactory: credFactory, - } - credFactory.On("NewCredFromCert", opts.ClientCert, opts.ClientPrivateKey).Return(confidential.Credential{}, nil) - provider, err := NewConfidentialIdentityProvider(opts) - // confidential.New will fail since the credentials are invalid - assert.ErrorContains(t, err, "failed to create client:") - assert.Nil(t, provider) - }) - - t.Run("with failing client certificate", func(t *testing.T) { - t.Parallel() - opts := ConfidentialIdentityProviderOptions{ - ClientID: "client-id", - CredentialsType: "ClientCertificate", - ClientCert: []*x509.Certificate{{}}, - ClientPrivateKey: "private-key", - Scopes: []string{"scope1", "scope2"}, - Authority: AuthorityConfiguration{}, - } - // invalid certificate should fail - provider, err := NewConfidentialIdentityProvider(opts) - assert.ErrorContains(t, err, "failed to create client certificate credential:") - assert.Nil(t, provider) - }) - - t.Run("with invalid credentials type", func(t *testing.T) { - t.Parallel() - opts := ConfidentialIdentityProviderOptions{ - ClientID: "client-id", - CredentialsType: "invalid-credentials-type", - ClientSecret: "client-secret", - Scopes: []string{"scope1", "scope2"}, - Authority: AuthorityConfiguration{}, - } - provider, err := NewConfidentialIdentityProvider(opts) - if err == nil { - t.Errorf("NewConfidentialIdentityProvider() error = nil, want error") - return - } - if provider != nil { - t.Errorf("NewConfidentialIdentityProvider() provider = %v, want nil", provider) - return - } - }) - - t.Run("with missing client id", func(t *testing.T) { - t.Parallel() - opts := ConfidentialIdentityProviderOptions{ - CredentialsType: "ClientSecret", - } - provider, err := NewConfidentialIdentityProvider(opts) - if err == nil { - t.Errorf("NewConfidentialIdentityProvider() error = nil, want error") - return - } - if provider != nil { - t.Errorf("NewConfidentialIdentityProvider() provider = %v, want nil", provider) - return - } - }) - - t.Run("with bad authority type", func(t *testing.T) { - t.Parallel() - opts := ConfidentialIdentityProviderOptions{ - ClientID: "client-id", - CredentialsType: "ClientSecret", - ClientSecret: "client-secret", - Scopes: []string{"scope1", "scope2"}, - Authority: AuthorityConfiguration{AuthorityType: "bad-authority-type"}, - } - provider, err := NewConfidentialIdentityProvider(opts) - if err == nil { - t.Errorf("NewConfidentialIdentityProvider() error = nil, want error") - return - } - if provider != nil { - t.Errorf("NewConfidentialIdentityProvider() provider = %v, want nil", provider) - return - } - }) - t.Run("with missing client secret", func(t *testing.T) { - t.Parallel() - opts := ConfidentialIdentityProviderOptions{ - ClientID: "client-id", - CredentialsType: "ClientSecret", - Scopes: []string{"scope1", "scope2"}, - } - provider, err := NewConfidentialIdentityProvider(opts) - if err == nil { - t.Errorf("NewConfidentialIdentityProvider() error = nil, want error") - return - } - if provider != nil { - t.Errorf("NewConfidentialIdentityProvider() provider = %v, want nil", provider) - return - } - }) - - t.Run("with credentials from secret error", func(t *testing.T) { - t.Parallel() - credFactory := &mockConfidentialCredentialFactory{} - opts := ConfidentialIdentityProviderOptions{ - ClientID: "client-id", - CredentialsType: "ClientSecret", - ClientSecret: "client-secret", - Scopes: []string{"scope1", "scope2"}, - Authority: AuthorityConfiguration{}, - confidentialCredFactory: credFactory, - } - credFactory.On("NewCredFromSecret", "client-secret").Return(confidential.Credential{}, fmt.Errorf("error creating credential")) - provider, err := NewConfidentialIdentityProvider(opts) - if err == nil { - t.Errorf("NewConfidentialIdentityProvider() error = nil, want error") - return - } - if provider != nil { - t.Errorf("NewConfidentialIdentityProvider() provider = %v, want nil", provider) - return - } - credFactory.AssertExpectations(t) - }) - - t.Run("empty certificate", func(t *testing.T) { - t.Parallel() - opts := ConfidentialIdentityProviderOptions{ - ClientID: "client-id", - CredentialsType: "ClientCertificate", - ClientCert: nil, - ClientPrivateKey: "private key", - Scopes: []string{"scope1", "scope2"}, - Authority: AuthorityConfiguration{}, - } - provider, err := NewConfidentialIdentityProvider(opts) - if err == nil { - t.Errorf("NewConfidentialIdentityProvider() error = nil, want error") - return - } - if provider != nil { - t.Errorf("NewConfidentialIdentityProvider() provider = %v, want nil", provider) - return - } - }) - - t.Run("empty private key", func(t *testing.T) { - t.Parallel() - opts := ConfidentialIdentityProviderOptions{ - ClientID: "client-id", - CredentialsType: "ClientCertificate", - ClientCert: []*x509.Certificate{{}}, - ClientPrivateKey: nil, - Scopes: []string{"scope1", "scope2"}, - Authority: AuthorityConfiguration{}, - } - provider, err := NewConfidentialIdentityProvider(opts) - if err == nil { - t.Errorf("NewConfidentialIdentityProvider() error = nil, want error") - return - } - if provider != nil { - t.Errorf("NewConfidentialIdentityProvider() provider = %v, want nil", provider) - return - } - }) - t.Run("validate default scopes", func(t *testing.T) { - t.Parallel() - opts := ConfidentialIdentityProviderOptions{ - ClientID: "client-id", - CredentialsType: "ClientSecret", - ClientSecret: "client-secret", - Authority: AuthorityConfiguration{}, - } - provider, err := NewConfidentialIdentityProvider(opts) - if err != nil { - t.Errorf("NewConfidentialIdentityProvider() error = %v", err) - return - } - if provider == nil { - t.Errorf("NewConfidentialIdentityProvider() provider = nil") - return - } - if len(provider.scopes) == 0 { - t.Errorf("NewConfidentialIdentityProvider() provider.Scopes = %v, want non-empty", provider.scopes) - return - } - assert.Contains(t, provider.scopes, RedisScopeDefault) - }) -} - -func TestConfidentialIdentityProvider_RequestToken(t *testing.T) { - t.Run("with mock client", func(t *testing.T) { - t.Parallel() - mClient := &mockConfidentialTokenClient{} - - opts := ConfidentialIdentityProviderOptions{ - ClientID: "client-id", - CredentialsType: "ClientSecret", - ClientSecret: "client-secret", - Authority: AuthorityConfiguration{ - AuthorityType: AuthorityTypeCustom, - Authority: "https://test-authority.dev/test", - }, - } - provider, err := NewConfidentialIdentityProvider(opts) - if err != nil { - t.Errorf("NewConfidentialIdentityProvider() error = %v", err) - return - } - if provider == nil { - t.Errorf("NewConfidentialIdentityProvider() provider = nil") - return - } - expiresOn := time.Now().Add(time.Hour) - provider.client = mClient - mClient.On("AcquireTokenByCredential", mock.Anything, mock.Anything). - Return(confidential.AuthResult{ - ExpiresOn: expiresOn, - }, nil) - token, err := provider.RequestToken(context.Background()) - if err != nil { - t.Errorf("RequestToken() error = %v", err) - return - } - assert.NotEmpty(t, token, "RequestToken() token should not be empty") - assert.Equal(t, token.Type(), shared.ResponseTypeAuthResult, "RequestToken() token type should be AuthResult") - res, err := token.(shared.AuthResultIDPResponse).AuthResult() - assert.NoError(t, err, "RequestToken() token should be AuthResultIDPResponse") - assert.Equal(t, expiresOn, res.ExpiresOn, "RequestToken() token should be equal to expiresOn") - }) - t.Run("with error", func(t *testing.T) { - t.Parallel() - mClient := &mockConfidentialTokenClient{} - - opts := ConfidentialIdentityProviderOptions{ - ClientID: "client-id", - CredentialsType: "ClientSecret", - ClientSecret: "client-secret", - Authority: AuthorityConfiguration{ - AuthorityType: AuthorityTypeCustom, - Authority: "https://test-authority.dev/test", - }, - } - provider, err := NewConfidentialIdentityProvider(opts) - if err != nil { - t.Errorf("NewConfidentialIdentityProvider() error = %v", err) - return - } - if provider == nil { - t.Errorf("NewConfidentialIdentityProvider() provider = nil") - return - } - provider.client = mClient - mClient.On("AcquireTokenByCredential", mock.Anything, mock.Anything). - Return(confidential.AuthResult{}, fmt.Errorf("error acquiring token")) - token, err := provider.RequestToken(context.Background()) - assert.ErrorContains(t, err, "failed to acquire token:") - assert.Empty(t, token, "RequestToken() token should be empty") - }) - t.Run("without initialization", func(t *testing.T) { - t.Parallel() - provider := &ConfidentialIdentityProvider{} - token, err := provider.RequestToken(context.Background()) - assert.ErrorContains(t, err, "client is not initialized") - assert.Empty(t, token, "RequestToken() token should be empty") - }) -} diff --git a/identity/identity_test.go b/identity/identity_test.go deleted file mode 100644 index 4d33a65..0000000 --- a/identity/identity_test.go +++ /dev/null @@ -1,86 +0,0 @@ -package identity - -import ( - "context" - "crypto" - "crypto/x509" - - "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" - "github.com/Azure/azure-sdk-for-go/sdk/azidentity" - "github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential" - "github.com/stretchr/testify/mock" -) - -// testJWTToken is a JWT token for testing -// -// { -// "iss": "test jwt", -// "iat": 1743515011, -// "exp": 1775051011, -// "aud": "www.example.com", -// "sub": "test@test.com", -// "oid": "test" -// } -// -// key: qwertyuiopasdfghjklzxcvbnm123456 -const testJWTToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ0ZXN0IGp3dCIsImlhdCI6MTc0MzUxNTAxMSwiZXhwIjoxNzc1MDUxMDExLCJhdWQiOiJ3d3cuZXhhbXBsZS5jb20iLCJzdWIiOiJ0ZXN0QHRlc3QuY29tIiwib2lkIjoidGVzdCJ9.6RG721V2eFlSLsCRmo53kSRRrTZIe1UPdLZCUEvIarU" - -type mockAzureCredential struct { - mock.Mock -} - -func (m *mockAzureCredential) GetToken(ctx context.Context, options policy.TokenRequestOptions) (azcore.AccessToken, error) { - args := m.Called(ctx, options) - if args.Get(0) == nil { - return azcore.AccessToken{}, args.Error(1) - } - return args.Get(0).(azcore.AccessToken), args.Error(1) -} - -type mockCredFactory struct { - // Mock implementation of the credFactory interface - mock.Mock -} - -func (m *mockCredFactory) NewDefaultAzureCredential(options *azidentity.DefaultAzureCredentialOptions) (azureCredential, error) { - args := m.Called(options) - if args.Get(0) == nil { - return nil, args.Error(1) - } - return args.Get(0).(azureCredential), args.Error(1) -} - -type mockConfidentialCredentialFactory struct { - // Mock implementation of the confidentialCredFactory interface - mock.Mock -} - -func (m *mockConfidentialCredentialFactory) NewCredFromSecret(clientSecret string) (confidential.Credential, error) { - args := m.Called(clientSecret) - if args.Get(0) == nil { - return confidential.Credential{}, args.Error(1) - } - return args.Get(0).(confidential.Credential), args.Error(1) -} - -func (m *mockConfidentialCredentialFactory) NewCredFromCert(clientCert []*x509.Certificate, clientPrivateKey crypto.PrivateKey) (confidential.Credential, error) { - args := m.Called(clientCert, clientPrivateKey) - if args.Get(0) == nil { - return confidential.Credential{}, args.Error(1) - } - return args.Get(0).(confidential.Credential), args.Error(1) -} - -type mockConfidentialTokenClient struct { - // Mock implementation of the confidentialTokenClient interface - mock.Mock -} - -func (m *mockConfidentialTokenClient) AcquireTokenByCredential(ctx context.Context, scopes []string, options ...confidential.AcquireByCredentialOption) (confidential.AuthResult, error) { - args := m.Called(ctx, options) - if args.Get(0) == nil { - return confidential.AuthResult{}, args.Error(1) - } - return args.Get(0).(confidential.AuthResult), args.Error(1) -} diff --git a/identity/managed_identity_provider.go b/identity/managed_identity_provider.go deleted file mode 100644 index f692375..0000000 --- a/identity/managed_identity_provider.go +++ /dev/null @@ -1,124 +0,0 @@ -package identity - -import ( - "context" - "errors" - "fmt" - - mi "github.com/AzureAD/microsoft-authentication-library-for-go/apps/managedidentity" - "github.com/AzureAD/microsoft-authentication-library-for-go/apps/public" - "github.com/redis/go-redis-entraid/shared" -) - -// ManagedIdentityClient is an interface that defines the methods for a managed identity client. -// It is used to acquire a token using the managed identity. -type ManagedIdentityClient interface { - // AcquireToken acquires a token using the managed identity. - // It returns the token and an error if any. - AcquireToken(ctx context.Context, resource string, opts ...mi.AcquireTokenOption) (public.AuthResult, error) -} - -// ManagedIdentityProviderOptions represents the options for the managed identity provider. -// It is used to configure the identity provider when requesting a token. -type ManagedIdentityProviderOptions struct { - // UserAssignedObjectID is the object ID that is used to identify the user assigned identity. - // This is used to identify the identity when requesting a token. - UserAssignedObjectID string - // ManagedIdentityType is the type of managed identity. - // This can be either SystemAssigned or UserAssignedObjectID. - ManagedIdentityType string - // Scopes is a list of scopes that the identity has access to. - // This is used to specify the permissions that the identity has when requesting a token. - Scopes []string -} - -// ManagedIdentityProvider represents a managed identity provider. -type ManagedIdentityProvider struct { - // userAssignedObjectID is the client ID of the user assigned identity. - // This is used to identify the identity when requesting a token. - userAssignedObjectID string - - // managedIdentityType is the type of managed identity. - // This can be either SystemAssigned or UserAssignedObjectID. - managedIdentityType string - - // scopes is a list of scopes that the identity has access to. - // This is used to specify the permissions that the identity has when requesting a token. - scopes []string - - // client is the managed identity client used to request a token. - client ManagedIdentityClient -} - -// realManagedIdentityClient is a wrapper around the real mi.Client that implements our interface -type realManagedIdentityClient struct { - client ManagedIdentityClient -} - -func (c *realManagedIdentityClient) AcquireToken(ctx context.Context, resource string, opts ...mi.AcquireTokenOption) (public.AuthResult, error) { - return c.client.AcquireToken(ctx, resource, opts...) -} - -// NewManagedIdentityProvider creates a new managed identity provider for Azure with managed identity. -// It is used to configure the identity provider when requesting a token. -func NewManagedIdentityProvider(opts ManagedIdentityProviderOptions) (*ManagedIdentityProvider, error) { - var client ManagedIdentityClient - - if opts.ManagedIdentityType != SystemAssignedIdentity && opts.ManagedIdentityType != UserAssignedObjectID { - return nil, errors.New("invalid managed identity type") - } - - switch opts.ManagedIdentityType { - case SystemAssignedIdentity: - // SystemAssignedIdentity is the type of identity that is automatically managed by Azure. - // This type of identity is automatically created and managed by Azure. - // It is used to authenticate the identity when requesting a token. - miClient, err := mi.New(mi.SystemAssigned()) - if err != nil { - return nil, fmt.Errorf("couldn't create managed identity client: %w", err) - } - client = &realManagedIdentityClient{client: miClient} - case UserAssignedObjectID: - // UserAssignedObjectID is required to be specified when using a user assigned identity. - if opts.UserAssignedObjectID == "" { - return nil, errors.New("user assigned object ID is required when using user assigned identity") - } - // UserAssignedObjectID is the type of identity that is managed by the user. - miClient, err := mi.New(mi.UserAssignedObjectID(opts.UserAssignedObjectID)) - if err != nil { - return nil, fmt.Errorf("couldn't create managed identity client: %w", err) - } - client = &realManagedIdentityClient{client: miClient} - } - - return &ManagedIdentityProvider{ - userAssignedObjectID: opts.UserAssignedObjectID, - managedIdentityType: opts.ManagedIdentityType, - scopes: opts.Scopes, - client: client, - }, nil -} - -// RequestToken requests a token from the managed identity provider. -// It returns IdentityProviderResponse, which contains the Acc and the expiration time. -func (m *ManagedIdentityProvider) RequestToken(ctx context.Context) (shared.IdentityProviderResponse, error) { - if m.client == nil { - return nil, errors.New("managed identity client is not initialized") - } - - // default resource is RedisResource == "https://redis.azure.com" - // if no scopes are provided, use the default resource - // if scopes are provided, use the first scope as the resource - resource := RedisResource - if len(m.scopes) > 0 { - resource = m.scopes[0] - } - // acquire token using the managed identity client - // the resource is the URL of the resource that the identity has access to - authResult, err := m.client.AcquireToken(ctx, resource) - if err != nil { - return nil, fmt.Errorf("couldn't acquire token: %w", err) - } - - return shared.NewIDPResponse(shared.ResponseTypeAuthResult, &authResult) -} diff --git a/identity/managed_identity_provider_test.go b/identity/managed_identity_provider_test.go deleted file mode 100644 index bd42f8f..0000000 --- a/identity/managed_identity_provider_test.go +++ /dev/null @@ -1,305 +0,0 @@ -package identity - -import ( - "context" - "errors" - "testing" - "time" - - mi "github.com/AzureAD/microsoft-authentication-library-for-go/apps/managedidentity" - "github.com/AzureAD/microsoft-authentication-library-for-go/apps/public" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" -) - -// MockManagedIdentityClient is a mock implementation of the managed identity client -type MockManagedIdentityClient struct { - mock.Mock -} - -func (m *MockManagedIdentityClient) AcquireToken(ctx context.Context, resource string, opts ...mi.AcquireTokenOption) (public.AuthResult, error) { - args := m.Called(ctx, resource) - return args.Get(0).(public.AuthResult), args.Error(1) -} - -func TestNewManagedIdentityProvider(t *testing.T) { - tests := []struct { - name string - opts ManagedIdentityProviderOptions - expectedError string - }{ - { - name: "System assigned identity", - opts: ManagedIdentityProviderOptions{ - ManagedIdentityType: SystemAssignedIdentity, - Scopes: []string{"https://redis.azure.com"}, - }, - expectedError: "", - }, - { - name: "User assigned identity with client ID", - opts: ManagedIdentityProviderOptions{ - ManagedIdentityType: UserAssignedObjectID, - UserAssignedObjectID: "test-client-id", - Scopes: []string{"https://redis.azure.com"}, - }, - expectedError: "", - }, - { - name: "User assigned identity without client ID", - opts: ManagedIdentityProviderOptions{ - ManagedIdentityType: UserAssignedObjectID, - Scopes: []string{"https://redis.azure.com"}, - }, - expectedError: "user assigned object ID is required when using user assigned identity", - }, - { - name: "Invalid identity type", - opts: ManagedIdentityProviderOptions{ - ManagedIdentityType: "invalid-type", - Scopes: []string{"https://redis.azure.com"}, - }, - expectedError: "invalid managed identity type", - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - provider, err := NewManagedIdentityProvider(tt.opts) - - if tt.expectedError != "" { - assert.Error(t, err) - assert.Contains(t, err.Error(), tt.expectedError) - assert.Nil(t, provider) - } else { - assert.NoError(t, err) - assert.NotNil(t, provider) - assert.Equal(t, tt.opts.ManagedIdentityType, provider.managedIdentityType) - assert.Equal(t, tt.opts.UserAssignedObjectID, provider.userAssignedObjectID) - assert.Equal(t, tt.opts.Scopes, provider.scopes) - assert.NotNil(t, provider.client) - } - }) - } -} - -func TestRequestToken(t *testing.T) { - tests := []struct { - name string - provider *ManagedIdentityProvider - expectedError string - }{ - { - name: "Success with default resource", - provider: &ManagedIdentityProvider{ - scopes: []string{}, - client: new(MockManagedIdentityClient), - }, - expectedError: "", - }, - { - name: "Success with custom resource", - provider: &ManagedIdentityProvider{ - scopes: []string{"custom-resource"}, - client: new(MockManagedIdentityClient), - }, - expectedError: "", - }, - { - name: "Error when client is nil", - provider: &ManagedIdentityProvider{ - scopes: []string{}, - client: nil, - }, - expectedError: "managed identity client is not initialized", - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - // Set up the mock expectations if we have a mock client - if tt.provider.client != nil { - mockClient := tt.provider.client.(*MockManagedIdentityClient) - expectedResource := RedisResource - if len(tt.provider.scopes) > 0 { - expectedResource = tt.provider.scopes[0] - } - - if tt.expectedError == "" { - mockClient.On("AcquireToken", mock.Anything, expectedResource). - Return(public.AuthResult{ - AccessToken: "test-token", - ExpiresOn: time.Now().Add(time.Hour), - }, nil) - } else { - mockClient.On("AcquireToken", mock.Anything, expectedResource). - Return(public.AuthResult{}, errors.New(tt.expectedError)) - } - } - - response, err := tt.provider.RequestToken(context.Background()) - - if tt.expectedError != "" { - assert.Error(t, err) - assert.Contains(t, err.Error(), tt.expectedError) - assert.Nil(t, response) - } else { - assert.NoError(t, err) - assert.NotNil(t, response) - } - - // Verify mock expectations - if tt.provider.client != nil { - mockClient := tt.provider.client.(*MockManagedIdentityClient) - mockClient.AssertExpectations(t) - } - }) - } -} - -func TestRequestToken_ErrorCases(t *testing.T) { - tests := []struct { - name string - provider *ManagedIdentityProvider - setupMock func(*MockManagedIdentityClient) - expectedError string - }{ - { - name: "AcquireToken fails", - provider: &ManagedIdentityProvider{ - scopes: []string{}, - client: new(MockManagedIdentityClient), - }, - setupMock: func(m *MockManagedIdentityClient) { - m.On("AcquireToken", mock.Anything, RedisResource). - Return(public.AuthResult{}, errors.New("failed to acquire token")) - }, - expectedError: "couldn't acquire token: failed to acquire token", - }, - { - name: "AcquireToken fails with custom resource", - provider: &ManagedIdentityProvider{ - scopes: []string{"custom-resource"}, - client: new(MockManagedIdentityClient), - }, - setupMock: func(m *MockManagedIdentityClient) { - m.On("AcquireToken", mock.Anything, "custom-resource"). - Return(public.AuthResult{}, errors.New("failed to acquire token")) - }, - expectedError: "couldn't acquire token: failed to acquire token", - }, - { - name: "AcquireToken fails with invalid resource", - provider: &ManagedIdentityProvider{ - scopes: []string{"invalid-resource"}, - client: new(MockManagedIdentityClient), - }, - setupMock: func(m *MockManagedIdentityClient) { - m.On("AcquireToken", mock.Anything, "invalid-resource"). - Return(public.AuthResult{}, errors.New("invalid resource")) - }, - expectedError: "couldn't acquire token: invalid resource", - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - mockClient := tt.provider.client.(*MockManagedIdentityClient) - tt.setupMock(mockClient) - - response, err := tt.provider.RequestToken(context.Background()) - - assert.Error(t, err) - assert.Contains(t, err.Error(), tt.expectedError) - assert.Nil(t, response) - mockClient.AssertExpectations(t) - }) - } -} - -// MockMIClient is a mock implementation of the mi.Client interface -type MockMIClient struct { - mock.Mock -} - -func (m *MockMIClient) AcquireToken(ctx context.Context, resource string, opts ...mi.AcquireTokenOption) (public.AuthResult, error) { - args := m.Called(ctx, resource) - return args.Get(0).(public.AuthResult), args.Error(1) -} - -func (m *MockMIClient) Close() error { - args := m.Called() - return args.Error(0) -} - -func TestRealManagedIdentityClient(t *testing.T) { - // Create a mock managed identity client - mockMIClient := new(MockManagedIdentityClient) - client := &realManagedIdentityClient{client: mockMIClient} - - tests := []struct { - name string - resource string - setupMock func(*MockManagedIdentityClient) - expectedError string - }{ - { - name: "Success with default resource", - resource: RedisResource, - setupMock: func(m *MockManagedIdentityClient) { - m.On("AcquireToken", mock.Anything, RedisResource, mock.Anything). - Return(public.AuthResult{ - AccessToken: "test-token", - ExpiresOn: time.Now().Add(time.Hour), - }, nil) - }, - }, - { - name: "Success with custom resource", - resource: "custom-resource", - setupMock: func(m *MockManagedIdentityClient) { - m.On("AcquireToken", mock.Anything, "custom-resource", mock.Anything). - Return(public.AuthResult{ - AccessToken: "test-token", - ExpiresOn: time.Now().Add(time.Hour), - }, nil) - }, - }, - { - name: "Error from underlying client", - resource: RedisResource, - setupMock: func(m *MockManagedIdentityClient) { - m.On("AcquireToken", mock.Anything, RedisResource, mock.Anything). - Return(public.AuthResult{}, errors.New("underlying client error")) - }, - expectedError: "underlying client error", - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - // Reset the mock for each test - mockMIClient.ExpectedCalls = nil - mockMIClient.Calls = nil - - // Set up the mock - tt.setupMock(mockMIClient) - - // Call AcquireToken with empty options slice to match mock setup - result, err := client.AcquireToken(context.Background(), tt.resource, []mi.AcquireTokenOption{}...) - - if tt.expectedError != "" { - assert.Error(t, err) - assert.Contains(t, err.Error(), tt.expectedError) - assert.Equal(t, public.AuthResult{}, result) - } else { - assert.NoError(t, err) - assert.NotEqual(t, public.AuthResult{}, result) - assert.Equal(t, "test-token", result.AccessToken) - } - - // Verify mock expectations - mockMIClient.AssertExpectations(t) - }) - } -} diff --git a/identity/providers.go b/identity/providers.go deleted file mode 100644 index 946634c..0000000 --- a/identity/providers.go +++ /dev/null @@ -1,25 +0,0 @@ -package identity - -// CredentialsProviderOptions is a struct that holds the options for the credentials provider. - -const ( - // SystemAssignedIdentity is the type of identity that is automatically managed by Azure. - SystemAssignedIdentity = "SystemAssigned" - // UserAssignedObjectID is the type of identity that is managed by the user. - UserAssignedObjectID = "UserAssignedObjectID" - - // ClientSecretCredentialType is the type of credentials that uses a client secret to authenticate. - ClientSecretCredentialType = "ClientSecret" - // ClientCertificateCredentialType is the type of credentials that uses a client certificate to authenticate. - ClientCertificateCredentialType = "ClientCertificate" - - // RedisScopeDefault is the default scope for Redis. - // This is used to specify the scope that the identity has access to when requesting a token. - // The scope is typically the URL of the resource that the identity has access to. - RedisScopeDefault = "https://redis.azure.com/.default" - - // RedisResource is the default resource for Redis. - // This is used to specify the resource that the identity has access to when requesting a token. - // The resource is typically the URL of the resource that the identity has access to. - RedisResource = "https://redis.azure.com" -) diff --git a/identity/providers_test.go b/identity/providers_test.go deleted file mode 100644 index a088752..0000000 --- a/identity/providers_test.go +++ /dev/null @@ -1,52 +0,0 @@ -package identity - -import ( - "testing" -) - -func TestConstants(t *testing.T) { - tests := []struct { - name string - got string - expected string - }{ - { - name: "SystemAssignedIdentity", - got: SystemAssignedIdentity, - expected: "SystemAssigned", - }, - { - name: "UserAssignedObjectID", - got: UserAssignedObjectID, - expected: "UserAssignedObjectID", - }, - { - name: "ClientSecretCredentialType", - got: ClientSecretCredentialType, - expected: "ClientSecret", - }, - { - name: "ClientCertificateCredentialType", - got: ClientCertificateCredentialType, - expected: "ClientCertificate", - }, - { - name: "RedisScopeDefault", - got: RedisScopeDefault, - expected: "https://redis.azure.com/.default", - }, - { - name: "RedisResource", - got: RedisResource, - expected: "https://redis.azure.com", - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - if tt.got != tt.expected { - t.Errorf("%s = %v, want %v", tt.name, tt.got, tt.expected) - } - }) - } -} diff --git a/install-git-hook.sh b/install-git-hook.sh deleted file mode 100755 index 5598436..0000000 --- a/install-git-hook.sh +++ /dev/null @@ -1,2 +0,0 @@ -chmod ug+x ./.githooks/* -git config core.hooksPath ./.githooks diff --git a/internal/errors.go b/internal/errors.go deleted file mode 100644 index d45c271..0000000 --- a/internal/errors.go +++ /dev/null @@ -1,8 +0,0 @@ -package internal - -import "fmt" - -var ErrInvalidIDPResponse = fmt.Errorf("invalid identity provider response") -var ErrAuthResultNotFound = fmt.Errorf("auth result not found") -var ErrAccessTokenNotFound = fmt.Errorf("access token not found") -var ErrRawTokenNotFound = fmt.Errorf("raw token not found") diff --git a/internal/idp_response.go b/internal/idp_response.go deleted file mode 100644 index c78e9dd..0000000 --- a/internal/idp_response.go +++ /dev/null @@ -1,98 +0,0 @@ -package internal - -import ( - "fmt" - - "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/AzureAD/microsoft-authentication-library-for-go/apps/public" -) - -// IDPResp represents a response from an Identity Provider (IDP) -// It can contain either an AuthResult, AccessToken, or a raw token string -type IDPResp struct { - // resultType indicates which type of response this is - resultType string - authResultVal *public.AuthResult - accessTokenVal *azcore.AccessToken - rawTokenVal string -} - -// NewIDPResp creates a new IDPResp with the given values -// It validates the input and ensures the response type matches the provided value -func NewIDPResp(resultType string, result interface{}) (*IDPResp, error) { - if result == nil { - return nil, ErrInvalidIDPResponse - } - - r := &IDPResp{resultType: resultType} - - switch resultType { - case "AuthResult": - switch v := result.(type) { - case *public.AuthResult: - r.authResultVal = v - case public.AuthResult: - r.authResultVal = &v - default: - return nil, fmt.Errorf("invalid auth result type: expected public.AuthResult or *public.AuthResult, got %T", result) - } - r.rawTokenVal = r.authResultVal.AccessToken - case "AccessToken": - switch v := result.(type) { - case *azcore.AccessToken: - r.accessTokenVal = v - case azcore.AccessToken: - r.accessTokenVal = &v - default: - return nil, fmt.Errorf("invalid access token type: expected azcore.AccessToken or *azcore.AccessToken, got %T", result) - } - r.rawTokenVal = r.accessTokenVal.Token - case "RawToken": - switch v := result.(type) { - case string: - r.rawTokenVal = v - case *string: - if v == nil { - return nil, fmt.Errorf("raw token cannot be nil") - } - r.rawTokenVal = *v - default: - return nil, fmt.Errorf("invalid raw token type: expected string or *string, got %T", result) - } - default: - return nil, fmt.Errorf("unsupported identity provider response type: %s", resultType) - } - - return r, nil -} - -// Type returns the type of response this IDPResp represents -func (a *IDPResp) Type() string { - return a.resultType -} - -// AuthResult returns the AuthResult if present, or an empty AuthResult if not set -// Use HasAuthResult() to check if the value is actually set -func (a *IDPResp) AuthResult() (public.AuthResult, error) { - if a.authResultVal == nil { - return public.AuthResult{}, ErrAuthResultNotFound - } - return *a.authResultVal, nil -} - -// AccessToken returns the AccessToken if present, or an empty AccessToken if not set -// Use HasAccessToken() to check if the value is actually set -func (a *IDPResp) AccessToken() (azcore.AccessToken, error) { - if a.accessTokenVal == nil { - return azcore.AccessToken{}, ErrAccessTokenNotFound - } - return *a.accessTokenVal, nil -} - -// RawToken returns the raw token string -func (a *IDPResp) RawToken() (string, error) { - if a.rawTokenVal == "" { - return "", ErrRawTokenNotFound - } - return a.rawTokenVal, nil -} diff --git a/internal/idp_response_test.go b/internal/idp_response_test.go deleted file mode 100644 index 13fad12..0000000 --- a/internal/idp_response_test.go +++ /dev/null @@ -1,371 +0,0 @@ -package internal - -import ( - "testing" - "time" - - "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/AzureAD/microsoft-authentication-library-for-go/apps/public" - "github.com/stretchr/testify/assert" -) - -func TestIDPResp_Type(t *testing.T) { - tests := []struct { - name string - resultType string - want string - }{ - { - name: "AuthResult type", - resultType: "AuthResult", - want: "AuthResult", - }, - { - name: "Empty type", - resultType: "", - want: "", - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - resp := &IDPResp{ - resultType: tt.resultType, - } - if got := resp.Type(); got != tt.want { - t.Errorf("IDPResp.Type() = %v, want %v", got, tt.want) - } - }) - } -} - -func TestIDPResp_AuthResult(t *testing.T) { - now := time.Now() - authResult := &public.AuthResult{ - AccessToken: "test-token", - ExpiresOn: now, - } - - tests := []struct { - name string - authResult *public.AuthResult - wantToken string - wantExpiresOn time.Time - wantErr error - }{ - { - name: "With AuthResult", - authResult: authResult, - wantToken: "test-token", - wantExpiresOn: now, - }, - { - name: "Nil AuthResult", - authResult: nil, - wantToken: "", - wantExpiresOn: time.Time{}, - wantErr: ErrAuthResultNotFound, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - resp := &IDPResp{ - authResultVal: tt.authResult, - } - got, err := resp.AuthResult() - if got.AccessToken != tt.wantToken || err != tt.wantErr { - t.Errorf("IDPResp.AuthResult().AccessToken = %v, %v, want %v, %v", got.AccessToken, err, tt.wantToken, tt.wantErr) - } - if !got.ExpiresOn.Equal(tt.wantExpiresOn) { - t.Errorf("IDPResp.AuthResult().ExpiresOn = %v, want %v", got.ExpiresOn, tt.wantExpiresOn) - } - }) - } -} - -func TestIDPResp_AccessToken(t *testing.T) { - now := time.Now() - accessToken := &azcore.AccessToken{ - Token: "test-token", - ExpiresOn: now, - } - - tests := []struct { - name string - accessToken *azcore.AccessToken - wantToken string - wantExpiresOn time.Time - wantErr error - }{ - { - name: "With AccessToken", - accessToken: accessToken, - wantToken: "test-token", - wantExpiresOn: now, - wantErr: nil, - }, - { - name: "Nil AccessToken", - accessToken: nil, - wantToken: "", - wantExpiresOn: time.Time{}, - wantErr: ErrAccessTokenNotFound, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - resp := &IDPResp{ - accessTokenVal: tt.accessToken, - } - got, err := resp.AccessToken() - if got.Token != tt.wantToken || err != tt.wantErr { - t.Errorf("IDPResp.AccessToken().Token = %v, want %v", got.Token, tt.wantToken) - } - if !got.ExpiresOn.Equal(tt.wantExpiresOn) { - t.Errorf("IDPResp.AccessToken().ExpiresOn = %v, want %v", got.ExpiresOn, tt.wantExpiresOn) - } - }) - } -} - -func TestIDPResp_RawToken(t *testing.T) { - tests := []struct { - name string - rawToken string - want string - err error - }{ - { - name: "With RawToken", - rawToken: "test-raw-token", - want: "test-raw-token", - }, - { - name: "Empty RawToken", - rawToken: "", - want: "", - err: ErrRawTokenNotFound, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - resp := &IDPResp{ - rawTokenVal: tt.rawToken, - } - if got, err := resp.RawToken(); got != tt.want || err != tt.err { - t.Errorf("IDPResp.RawToken() = %v, %v, want %v, %v", got, err, tt.want, tt.err) - } - }) - } -} - -func TestNewIDPResp(t *testing.T) { - tests := []struct { - name string - resultType string - result interface{} - wantErr bool - checkResult func(t *testing.T, resp *IDPResp) - }{ - { - name: "valid AuthResult pointer", - resultType: "AuthResult", - result: &public.AuthResult{ - AccessToken: "test-token", - }, - wantErr: false, - checkResult: func(t *testing.T, resp *IDPResp) { - token, err := resp.AuthResult() - assert.NoError(t, err) - assert.Equal(t, "test-token", token.AccessToken) - }, - }, - { - name: "valid AuthResult value", - resultType: "AuthResult", - result: public.AuthResult{ - AccessToken: "test-token", - }, - wantErr: false, - checkResult: func(t *testing.T, resp *IDPResp) { - result, err := resp.AuthResult() - assert.NoError(t, err) - assert.Equal(t, "test-token", result.AccessToken) - }, - }, - { - name: "valid AccessToken pointer", - resultType: "AccessToken", - result: &azcore.AccessToken{ - Token: "test-token", - ExpiresOn: time.Now(), - }, - wantErr: false, - checkResult: func(t *testing.T, resp *IDPResp) { - token, err := resp.AccessToken() - assert.NoError(t, err) - assert.Equal(t, "test-token", token.Token) - }, - }, - { - name: "valid AccessToken value", - resultType: "AccessToken", - result: azcore.AccessToken{ - Token: "test-token", - ExpiresOn: time.Now(), - }, - wantErr: false, - checkResult: func(t *testing.T, resp *IDPResp) { - token, err := resp.AccessToken() - assert.NoError(t, err) - assert.Equal(t, "test-token", token.Token) - }, - }, - { - name: "valid RawToken string", - resultType: "RawToken", - result: "test-token", - wantErr: false, - checkResult: func(t *testing.T, resp *IDPResp) { - rawToken, err := resp.RawToken() - assert.NoError(t, err) - assert.Equal(t, "test-token", rawToken) - }, - }, - { - name: "valid RawToken string pointer", - resultType: "RawToken", - result: stringPtr("test-token"), - wantErr: false, - checkResult: func(t *testing.T, resp *IDPResp) { - rawToken, err := resp.RawToken() - assert.NoError(t, err) - assert.Equal(t, "test-token", rawToken) - }, - }, - { - name: "nil result", - resultType: "AuthResult", - result: nil, - wantErr: true, - }, - { - name: "nil RawToken pointer", - resultType: "RawToken", - result: (*string)(nil), - wantErr: true, - }, - { - name: "invalid AuthResult type", - resultType: "AuthResult", - result: "not-an-auth-result", - wantErr: true, - }, - { - name: "invalid AccessToken type", - resultType: "AccessToken", - result: "not-an-access-token", - wantErr: true, - }, - { - name: "invalid RawToken type", - resultType: "RawToken", - result: 123, - wantErr: true, - }, - { - name: "unsupported result type", - resultType: "InvalidType", - result: "test", - wantErr: true, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - got, err := NewIDPResp(tt.resultType, tt.result) - if tt.wantErr { - assert.Error(t, err) - assert.Nil(t, got) - return - } - - assert.NoError(t, err) - assert.NotNil(t, got) - assert.Equal(t, tt.resultType, got.Type()) - - if tt.checkResult != nil { - tt.checkResult(t, got) - } - }) - } -} - -func stringPtr(s string) *string { - return &s -} - -func BenchmarkIDPResp_Type(b *testing.B) { - resp := &IDPResp{ - resultType: "AuthResult", - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - resp.Type() - } -} - -func BenchmarkIDPResp_AuthResult(b *testing.B) { - now := time.Now() - authResult := &public.AuthResult{ - AccessToken: "test-token", - ExpiresOn: now, - } - resp := &IDPResp{ - authResultVal: authResult, - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - resp.AuthResult() - } -} - -func BenchmarkIDPResp_AccessToken(b *testing.B) { - now := time.Now() - accessToken := &azcore.AccessToken{ - Token: "test-token", - ExpiresOn: now, - } - resp := &IDPResp{ - accessTokenVal: accessToken, - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - resp.AccessToken() - } -} - -func BenchmarkIDPResp_RawToken(b *testing.B) { - resp := &IDPResp{ - rawTokenVal: "test-raw-token", - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - resp.RawToken() - } -} - -func BenchmarkNewIDPResp(b *testing.B) { - now := time.Now() - authResult := &public.AuthResult{ - AccessToken: "test-token", - ExpiresOn: now, - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - _, _ = NewIDPResp("AuthResult", authResult) - } -} diff --git a/internal/utils.go b/internal/utils.go deleted file mode 100644 index 32b8912..0000000 --- a/internal/utils.go +++ /dev/null @@ -1,18 +0,0 @@ -package internal - -// IsClosed checks if a channel is closed. -// Returns true only if the channel is actually closed, not just if it has data available. -// -// WARNING: This function will consume one value from the channel if it has pending data. -// Use with caution on channels where consuming data might cause issues. -func IsClosed(ch <-chan struct{}) bool { - select { - case _, ok := <-ch: - // If ok is false, the channel is closed - // If ok is true, the channel had data (which we just consumed) - return !ok - default: - // Channel is open but has no data available - return false - } -} diff --git a/internal/utils_test.go b/internal/utils_test.go deleted file mode 100644 index e80ccb0..0000000 --- a/internal/utils_test.go +++ /dev/null @@ -1,58 +0,0 @@ -package internal - -import "testing" - -func TestIsClosedWithNilChannel(t *testing.T) { - t.Parallel() - var ch chan struct{} - if IsClosed(ch) { - t.Error("expected nil channel to be open") - } -} - -func TestIsClosedWithEmptyChannel(t *testing.T) { - t.Parallel() - ch := make(chan struct{}) - if IsClosed(ch) { - t.Error("expected empty channel to be open") - } - - close(ch) - if !IsClosed(ch) { - t.Error("expected empty channel to be closed") - } -} - -func TestIsClosedWithClosedChannel(t *testing.T) { - t.Parallel() - ch := make(chan struct{}) - close(ch) - if !IsClosed(ch) { - t.Error("expected closed channel to be closed") - } -} - -func BenchmarkIsClosedWithNilChannel(b *testing.B) { - var ch chan struct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - IsClosed(ch) - } -} - -func BenchmarkIsClosedWithEmptyChannel(b *testing.B) { - ch := make(chan struct{}) - b.ResetTimer() - for i := 0; i < b.N; i++ { - IsClosed(ch) - } -} - -func BenchmarkIsClosedWithClosedChannel(b *testing.B) { - ch := make(chan struct{}) - close(ch) - b.ResetTimer() - for i := 0; i < b.N; i++ { - IsClosed(ch) - } -} diff --git a/manager/defaults.go b/manager/defaults.go deleted file mode 100644 index 8c05bc4..0000000 --- a/manager/defaults.go +++ /dev/null @@ -1,181 +0,0 @@ -package manager - -import ( - "errors" - "fmt" - "net" - "os" - "time" - - "github.com/golang-jwt/jwt/v5" - "github.com/redis/go-redis-entraid/shared" - "github.com/redis/go-redis-entraid/token" -) - -const ( - DefaultRequestTimeout = 30 * time.Second - DefaultExpirationRefreshRatio = 0.7 - DefaultRetryOptionsMaxAttempts = 3 - DefaultRetryOptionsBackoffMultiplier = 2.0 - DefaultRetryOptionsInitialDelay = 1000 * time.Millisecond - DefaultRetryOptionsMaxDelay = 10000 * time.Millisecond -) - -// defaultIsRetryable is a function that checks if the error is retriable. -// It takes an error as an argument and returns a boolean value. -// The function checks if the error is a net.Error and if it is a timeout or temporary error. -// Returns true for nil errors. -var defaultIsRetryable = func(err error) bool { - if err == nil { - return true - } - - var netErr net.Error - if errors.As(err, &netErr) { - // Check for timeout first as it's more specific - if netErr.Timeout() { - return true - } - // For temporary errors, we'll use a more modern approach - var tempErr interface{ Temporary() bool } - if errors.As(err, &tempErr) { - return tempErr.Temporary() - } - } - - return errors.Is(err, os.ErrDeadlineExceeded) -} - -// defaultRetryOptionsOr returns the default retry options if the provided options are not set. -// It sets the maximum number of attempts, initial delay, maximum delay, and backoff multiplier. -// The default values are 3 attempts, 1000 ms initial delay, 10000 ms maximum delay, and 2.0 backoff multiplier. -// The values can be overridden by the user. -func defaultRetryOptionsOr(retryOptions RetryOptions) RetryOptions { - if retryOptions.IsRetryable == nil { - retryOptions.IsRetryable = defaultIsRetryable - } - - if retryOptions.MaxAttempts <= 0 { - retryOptions.MaxAttempts = DefaultRetryOptionsMaxAttempts - } - if retryOptions.InitialDelay == 0 { - retryOptions.InitialDelay = DefaultRetryOptionsInitialDelay - } - if retryOptions.BackoffMultiplier == 0 { - retryOptions.BackoffMultiplier = DefaultRetryOptionsBackoffMultiplier - } - if retryOptions.MaxDelay == 0 { - retryOptions.MaxDelay = DefaultRetryOptionsMaxDelay - } - return retryOptions -} - -// defaultIdentityProviderResponseParserOr returns the default token parser if the provided token parser is not set. -// It sets the default token parser to the defaultIdentityProviderResponseParser function. -// The default token parser is used to parse the raw token and return a Token object. -func defaultIdentityProviderResponseParserOr(idpResponseParser shared.IdentityProviderResponseParser) shared.IdentityProviderResponseParser { - if idpResponseParser == nil { - return entraidIdentityProviderResponseParser - } - return idpResponseParser -} - -func defaultTokenManagerOptionsOr(options TokenManagerOptions) TokenManagerOptions { - options.RetryOptions = defaultRetryOptionsOr(options.RetryOptions) - options.IdentityProviderResponseParser = defaultIdentityProviderResponseParserOr(options.IdentityProviderResponseParser) - if options.ExpirationRefreshRatio == 0 { - options.ExpirationRefreshRatio = DefaultExpirationRefreshRatio - } - if options.RequestTimeout == 0 { - options.RequestTimeout = DefaultRequestTimeout - } - return options -} - -type defaultIdentityProviderResponseParser struct{} - -// ParseResponse parses the response from the identity provider and extracts the token. -// It takes an IdentityProviderResponse as an argument and returns a Token and an error if any. -// The raw token is extracted based on the IdentityProviderResponse Type and then -// is parsed as a JWT token to extract the claims. -func (*defaultIdentityProviderResponseParser) ParseResponse(response shared.IdentityProviderResponse) (*token.Token, error) { - if response == nil { - return nil, fmt.Errorf("identity provider response cannot be nil") - } - - var username, password, rawToken string - var expiresOn time.Time - now := time.Now().UTC().Truncate(time.Second).Add(time.Second) - - switch response.Type() { - case shared.ResponseTypeAuthResult: - authResult, err := response.(shared.AuthResultIDPResponse).AuthResult() - if err != nil { - return nil, fmt.Errorf("failed to get auth result: %w", err) - } - - expiresOn = authResult.ExpiresOn.UTC() - rawToken = authResult.AccessToken - case shared.ResponseTypeAccessToken: - accessToken, err := response.(shared.AccessTokenIDPResponse).AccessToken() - if err != nil { - return nil, fmt.Errorf("failed to get access token: %w", err) - } - - rawToken = accessToken.Token - expiresOn = accessToken.ExpiresOn.UTC() - case shared.ResponseTypeRawToken: - tokenStr, err := response.(shared.RawTokenIDPResponse).RawToken() - if err != nil { - return nil, fmt.Errorf("failed to get raw token: %w", err) - } - rawToken = tokenStr - default: - return nil, fmt.Errorf("unsupported response type: %s", response.Type()) - } - - if rawToken == "" { - return nil, fmt.Errorf("raw token is empty") - } - - // Parse JWT - claims := struct { - jwt.RegisteredClaims - Oid string `json:"oid,omitempty"` - }{} - - // Parse the token to extract claims, but note that signature verification - // should be handled by the identity provider - _, _, err := jwt.NewParser().ParseUnverified(rawToken, &claims) - if err != nil { - return nil, fmt.Errorf("failed to parse JWT token: %w", err) - } - - if claims.Oid == "" { - return nil, fmt.Errorf("JWT token does not contain OID claim") - } - - username = claims.Oid - password = rawToken - if expiresOn.IsZero() && claims.ExpiresAt != nil { - expiresOn = claims.ExpiresAt.UTC() - } - - if expiresOn.IsZero() { - return nil, fmt.Errorf("token expiration time is not set") - } - - if expiresOn.Before(now) { - return nil, fmt.Errorf("token has expired at %s (current time: %s)", expiresOn, now) - } - - // Create the token with consistent time reference - return token.New( - username, - password, - rawToken, - expiresOn, - now, - time.Until(expiresOn).Milliseconds(), - ), nil -} diff --git a/manager/entraid_manager.go b/manager/entraid_manager.go deleted file mode 100644 index 8accc70..0000000 --- a/manager/entraid_manager.go +++ /dev/null @@ -1,319 +0,0 @@ -package manager - -import ( - "context" - "fmt" - "sync" - "time" - - "github.com/redis/go-redis-entraid/internal" - "github.com/redis/go-redis-entraid/shared" - "github.com/redis/go-redis-entraid/token" -) - -const RefreshRationPrecision = 10000 - -// entraidTokenManager is a struct that implements the TokenManager interface. -type entraidTokenManager struct { - // idp is the identity provider used to obtain the token. - idp shared.IdentityProvider - - // token is the authentication token for the user which should be kept in memory if valid. - token *token.Token - - // tokenRWLock is a read-write lock used to protect the token from concurrent access. - tokenRWLock *sync.RWMutex - - // identityProviderResponseParser is the parser used to parse the response from the identity provider. - // It`s ParseResponse method will be called to parse the response and return the token. - identityProviderResponseParser shared.IdentityProviderResponseParser - - // retryOptions is a struct that contains the options for retrying the token request. - // It contains the maximum number of attempts, initial delay, maximum delay, and backoff multiplier. - // The default values are 3 attempts, 1000 ms initial delay, 10000 ms maximum delay, and 2.0 backoff multiplier. - // The values can be overridden by the user. - retryOptions RetryOptions - - // listener is the single listener for the token manager. - // It is used to receive updates from the token manager. - // The token manager will call the listener's OnNext method with the updated token. - // If an error occurs, the token manager will call the listener's OnError method with the error. - // if listener is set, Start will fail - listener TokenListener - - // lock locks the listener to prevent concurrent access. - lock *sync.Mutex - - // expirationRefreshRatio is the ratio of the token expiration time to refresh the token. - // It is used to determine when to refresh the token. - // The value should be between 0 and 1. - // For example, if the expiration time is 1 hour and the ratio is 0.75, - // the token will be refreshed after 45 minutes. (the token is refreshed when 75% of its lifetime has passed) - expirationRefreshRatio float64 - - // lowerBoundDuration is the lower bound for the refresh time in time.Duration. - lowerBoundDuration time.Duration - - // closedChan is a channel that is closedChan when the token manager is closedChan. - // It is used to signal the token manager to stop requesting tokens. - closedChan chan struct{} - - // context is the context used to request the token from the identity provider. - ctx context.Context - - // ctxCancel is the cancel function for the context. - ctxCancel context.CancelFunc - - // requestTimeout is the timeout for the request to the identity provider. - requestTimeout time.Duration -} - -func (e *entraidTokenManager) GetToken(forceRefresh bool) (*token.Token, error) { - e.tokenRWLock.RLock() - // check if the token is nil and if it is not expired - t := e.token - duration := e.durationToRenewal(t) - if !forceRefresh && t != nil && duration > 0 { - e.tokenRWLock.RUnlock() - return t, nil - } - e.tokenRWLock.RUnlock() - - // start the context early, - // since at heavy concurrent load - // locks may take some time to acquire - ctx, ctxCancel := context.WithTimeout(e.ctx, e.requestTimeout) - defer ctxCancel() - - // Upgrade to write lock for token update - e.tokenRWLock.Lock() - defer e.tokenRWLock.Unlock() - - // Double-check pattern to avoid unnecessary token refresh - t = e.token - duration = e.durationToRenewal(t) - if !forceRefresh && t != nil && duration > 0 { - return t, nil - } - - // Request a new token from the identity provider - idpResult, err := e.idp.RequestToken(ctx) - if err != nil { - return nil, fmt.Errorf("failed to request token from idp: %w", err) - } - - t, err = e.identityProviderResponseParser.ParseResponse(idpResult) - if err != nil { - return nil, fmt.Errorf("failed to parse token: %w", err) - } - - if t == nil { - return nil, fmt.Errorf("failed to get token: token is nil") - } - - // Store the token - e.token = t - // Return the token - no need to copy since it's immutable - return t, nil -} - -// Start starts the token manager and returns cancelFunc to stop the token manager. -// It takes a TokenListener as an argument, which is used to receive updates. -// The token manager will call the listener's OnNext method with the updated token. -// If an error occurs, the token manager will call the listener's OnError method with the error. -func (e *entraidTokenManager) Start(listener TokenListener) (StopFunc, error) { - e.lock.Lock() - defer e.lock.Unlock() - if e.listener != nil { - return nil, ErrTokenManagerAlreadyStarted - } - - if e.closedChan != nil && !internal.IsClosed(e.closedChan) { - // there is a hanging goroutine that is waiting for the closedChan to be closed - // if the closedChan is not nil and not closed, close it - close(e.closedChan) - } - - ctx, ctxCancel := context.WithCancel(context.Background()) - e.ctx = ctx - e.ctxCancel = ctxCancel - - // make sure there is token in memory before starting the loop - _, err := e.GetToken(false) - if err != nil { - return nil, fmt.Errorf("failed to get token: %w", err) - } - - e.closedChan = make(chan struct{}) - e.listener = listener - - go func(listener TokenListener, closed <-chan struct{}) { - // Add panic recovery to prevent crashes - defer func() { - if r := recover(); r != nil { - // Attempt to notify listener of panic, but don't panic again if that fails - func() { - defer func() { _ = recover() }() - listener.OnError(fmt.Errorf("token manager goroutine panic: %v", r)) - }() - } - }() - maxDelay := e.retryOptions.MaxDelay - initialDelay := e.retryOptions.InitialDelay - - for { - e.tokenRWLock.RLock() - timeToRenewal := e.durationToRenewal(e.token) - e.tokenRWLock.RUnlock() - select { - case <-closed: - return - case <-time.After(timeToRenewal): - if timeToRenewal == 0 { - // Token was requested immediately, guard against infinite loop - select { - case <-closed: - return - case <-time.After(initialDelay): - // continue to attempt - } - } - - // Token is about to expire, refresh it - delay := initialDelay - for i := 0; i < e.retryOptions.MaxAttempts; i++ { - t, err := e.GetToken(true) - if err == nil { - listener.OnNext(t) - break - } - - // check if err is retriable - if e.retryOptions.IsRetryable(err) { - if i == e.retryOptions.MaxAttempts-1 { - // last attempt, call OnError - listener.OnError(fmt.Errorf("max attempts reached: %w", err)) - return - } - - // Exponential backoff - if delay < maxDelay { - delay = time.Duration(float64(delay) * e.retryOptions.BackoffMultiplier) - } - if delay > maxDelay { - delay = maxDelay - } - - select { - case <-closed: - return - case <-time.After(delay): - // continue to next attempt - } - } else { - // not retriable - listener.OnError(err) - return - } - } - } - } - }(listener, e.closedChan) - - return e.stop, nil -} - -// stop closes the token manager and releases any resources. -func (e *entraidTokenManager) stop() (err error) { - e.lock.Lock() - defer e.lock.Unlock() - defer func() { - // recover from panic and return the error - if r := recover(); r != nil { - err = fmt.Errorf("failed to stop token manager: %s", r) - } - }() - - if e.ctxCancel != nil { - e.ctxCancel() - } - - if e.closedChan == nil || e.listener == nil { - return ErrTokenManagerAlreadyStopped - } - - e.listener = nil - - // Safely close the channel - only close if not already closed - if !internal.IsClosed(e.closedChan) { - close(e.closedChan) - } - - return nil -} - -// durationToRenewal calculates the duration to the next token renewal. -// It returns the duration to the next token renewal based on the expiration refresh ratio and the lower bound duration. -// If the token is nil, it returns 0. -// If the time till expiration is less than the lower bound duration, it returns 0 to renew the token now. -func (e *entraidTokenManager) durationToRenewal(t *token.Token) time.Duration { - // Fast path: nil token check - if t == nil { - return 0 - } - - // Get current time in milliseconds (UTC) - nowMillis := time.Now().UnixMilli() - - // Get expiration time in milliseconds - expMillis := t.ExpirationOn().UnixMilli() - - // Fast path: token already expired - if expMillis <= nowMillis { - return 0 - } - - // Calculate time until expiration in milliseconds - timeTillExpiration := expMillis - nowMillis - - // Get lower bound in milliseconds - lowerBoundMillis := e.lowerBoundDuration.Milliseconds() - - // Fast path: time until expiration is less than lower bound - if timeTillExpiration <= lowerBoundMillis { - return 0 - } - - // Calculate refresh time using integer math with higher precision - // example tests use 0.001, which would be lost with lower precision - // Example: - // ttlMillis = 10000 - // e.expirationRefreshRatio = 0.001 - // - with int math and 100 precision: 10000 * (0.001*100) = 0ms - // - with int math and 10000 precision: 10000 * (0.001*10000) = 100ms - precision := int64(RefreshRationPrecision) - receivedAtMillis := t.ReceivedAt().UnixMilli() - ttlMillis := t.TTL() // Already in milliseconds - refreshRatioInt := int64(e.expirationRefreshRatio * float64(precision)) - refreshMillis := ttlMillis * refreshRatioInt / precision - refreshTimeMillis := receivedAtMillis + refreshMillis - - // Calculate time until refresh - timeUntilRefresh := refreshTimeMillis - nowMillis - - // Fast path: refresh time is in the past - if timeUntilRefresh <= 0 { - return 0 - } - - // Calculate time until lower bound - timeUntilLowerBound := timeTillExpiration - lowerBoundMillis - - // If refresh would occur after lower bound, use time until lower bound - if timeUntilRefresh > timeUntilLowerBound { - return time.Duration(timeUntilLowerBound) * time.Millisecond - } - - // Otherwise use time until refresh - return time.Duration(timeUntilRefresh) * time.Millisecond -} diff --git a/manager/entraid_manager_test.go b/manager/entraid_manager_test.go deleted file mode 100644 index 50e3970..0000000 --- a/manager/entraid_manager_test.go +++ /dev/null @@ -1,462 +0,0 @@ -package manager - -import ( - "testing" - "time" - - "github.com/redis/go-redis-entraid/token" - "github.com/stretchr/testify/assert" -) - -const testDurationDelta = float64(10 * time.Millisecond) - -func TestDurationToRenewal(t *testing.T) { - tests := []struct { - name string - token *token.Token - refreshRatio float64 - lowerBoundDuration time.Duration - expectedDuration time.Duration - }{ - { - name: "nil token returns 0", - token: nil, - refreshRatio: 0.75, - lowerBoundDuration: time.Second, - expectedDuration: 0, - }, - { - name: "expired token returns 0", - token: token.New( - "username", - "password", - "rawToken", - time.Now().Add(-time.Hour), - time.Now().Add(-2*time.Hour), - time.Hour.Milliseconds(), - ), - refreshRatio: 0.75, - lowerBoundDuration: time.Second, - expectedDuration: 0, - }, - { - name: "token with TTL less than lower bound returns 0", - token: token.New( - "username", - "password", - "rawToken", - time.Now().Add(500*time.Millisecond), - time.Now().Add(-time.Hour), - time.Hour.Milliseconds(), - ), - refreshRatio: 0.75, - lowerBoundDuration: time.Second, - expectedDuration: 0, - }, - { - name: "token with TTL exactly at lower bound returns 0", - token: token.New( - "username", - "password", - "rawToken", - time.Now().Add(time.Second), - time.Now(), - time.Second.Milliseconds(), - ), - refreshRatio: 0.75, - lowerBoundDuration: time.Second, - expectedDuration: 0, - }, - { - name: "token with refresh time before lower bound", - token: token.New( - "username", - "password", - "rawToken", - time.Now().Add(1*time.Hour), // expires in 1 hour - time.Now().Add(-1*time.Hour), // received 1 hour ago - (2 * time.Hour).Milliseconds(), // TTL is 2 hours - ), - refreshRatio: 0.75, - lowerBoundDuration: time.Second, - // ReceivedAt is 1 hour in the past, TTL is 2 hours, so refresh is at ReceivedAt + 1.5h (75% of 2h). - // Now is ReceivedAt + 1h, so time until refresh is 30 minutes. - expectedDuration: 30 * time.Minute, - }, - { - name: "token with refresh time before lower bound and large lower bound", - token: token.New( - "username", - "password", - "rawToken", - time.Now().Add(1*time.Hour), // expires in 1 hour - time.Now().Add(-1*time.Hour), // received 1 hour ago - (2 * time.Hour).Milliseconds(), // TTL is 2 hours - ), - refreshRatio: 0.75, - lowerBoundDuration: 45 * time.Minute, - // ReceivedAt is 1 hour in the past, TTL is 2 hours, so refresh is at ReceivedAt + 1.5h (75% of 2h). - // Now is ReceivedAt + 1h, so time until refresh is 30 minutes. - // But lower bound is 45 minutes, so refresh is scheduled for 15 minutes from now. - expectedDuration: 15 * time.Minute, - }, - { - name: "token with refresh time after lower bound and past ReceivedAt", - token: token.New( - "username", - "password", - "rawToken", - time.Now().Add(1*time.Hour), // expires in 1 hour - time.Now().Add(-30*time.Minute), // received 30 minutes ago - (90 * time.Minute).Milliseconds(), // TTL is 1.5 hours - ), - refreshRatio: 0.75, - lowerBoundDuration: 10 * time.Minute, - // ReceivedAt is 30 minutes in the past, TTL is 1.5 hours, so refresh is at ReceivedAt + 1.125h (75% of 1.5h). - // Now is ReceivedAt + 0.5h, so time until refresh is 1.125h - 0.5h = 0.625h = 37.5 minutes. - expectedDuration: 37*time.Minute + 30*time.Second, - }, - { - name: "token with refresh time after lower bound", - token: token.New( - "username", - "password", - "rawToken", - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ), - refreshRatio: 0.75, - lowerBoundDuration: 60 * time.Second, - expectedDuration: 45 * time.Minute, - }, - { - name: "token with refresh ratio 1 and lower bound 10 minutes", - token: token.New( - "username", - "password", - "rawToken", - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ), - refreshRatio: 1.0, - lowerBoundDuration: 10 * time.Minute, - expectedDuration: 50 * time.Minute, - }, - { - name: "token with zero refresh ratio", - token: token.New( - "username", - "password", - "rawToken", - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ), - refreshRatio: 0.0, - lowerBoundDuration: time.Second, - expectedDuration: 0, - }, - { - name: "token with negative refresh ratio", - token: token.New( - "username", - "password", - "rawToken", - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ), - refreshRatio: -0.5, - lowerBoundDuration: time.Second, - expectedDuration: 0, - }, - { - name: "token with very large TTL", - token: token.New( - "username", - "password", - "rawToken", - time.Now().Add(24*365*time.Hour), - time.Now(), - (24 * 365 * time.Hour).Milliseconds(), - ), - refreshRatio: 0.75, - lowerBoundDuration: time.Hour, - expectedDuration: 24 * 365 * 45 * time.Minute, - }, - { - name: "token with lower bound equal to TTL", - token: token.New( - "username", - "password", - "rawToken", - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ), - refreshRatio: 0.75, - lowerBoundDuration: time.Hour, - expectedDuration: 0, - }, - { - name: "token with lower bound greater than TTL", - token: token.New( - "username", - "password", - "rawToken", - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ), - refreshRatio: 0.75, - lowerBoundDuration: 2 * time.Hour, - expectedDuration: 0, - }, - { - name: "token with refresh ratio resulting in zero refresh time", - token: token.New( - "username", - "password", - "rawToken", - time.Now().Add(time.Second), - time.Now(), - time.Second.Milliseconds(), - ), - refreshRatio: 0.0001, - lowerBoundDuration: time.Millisecond, - expectedDuration: 0, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - manager := &entraidTokenManager{ - expirationRefreshRatio: tt.refreshRatio, - lowerBoundDuration: tt.lowerBoundDuration, - } - - duration := manager.durationToRenewal(tt.token) - assert.InDelta(t, float64(tt.expectedDuration), float64(duration), testDurationDelta, - "%s: expected %v, got %v", tt.name, tt.expectedDuration, duration) - }) - } -} - -func TestDurationToRenewalMillisecondPrecision(t *testing.T) { - now := time.Now() - tests := []struct { - name string - token *token.Token - refreshRatio float64 - lowerBoundDuration time.Duration - expectedDuration time.Duration - }{ - { - name: "exact millisecond TTL", - token: token.New( - "username", - "password", - "rawToken", - now.Add(time.Second), - now, - 1000, // 1 second in milliseconds - ), - refreshRatio: 0.001, - lowerBoundDuration: time.Millisecond, - expectedDuration: time.Millisecond, // 1ms refresh time - }, - { - name: "sub-millisecond TTL", - token: token.New( - "username", - "password", - "rawToken", - now.Add(100*time.Millisecond), - now, - 100, // 100ms - ), - refreshRatio: 0.001, - lowerBoundDuration: time.Millisecond, - expectedDuration: 0, - }, - { - name: "odd millisecond TTL", - token: token.New( - "username", - "password", - "rawToken", - now.Add(123*time.Millisecond), - now, - 123, // 123ms - ), - refreshRatio: 0.001, - lowerBoundDuration: time.Millisecond, - expectedDuration: 0, // 0.123ms rounds to 0ms - }, - { - name: "exact second TTL with millisecond refresh", - token: token.New( - "username", - "password", - "rawToken", - now.Add(time.Second), - now, - 1000, // 1 second in milliseconds - ), - refreshRatio: 0.001, - lowerBoundDuration: time.Millisecond, - expectedDuration: time.Millisecond, // 1ms refresh time - }, - { - name: "high precision refresh ratio", - token: token.New( - "username", - "password", - "rawToken", - now.Add(time.Second), - now, - 1000, // 1 second in milliseconds - ), - refreshRatio: 0.0001, // 0.01% - lowerBoundDuration: time.Millisecond, - expectedDuration: 0, // 0.1ms rounds to 0ms - }, - { - name: "very small TTL with high precision ratio", - token: token.New( - "username", - "password", - "rawToken", - now.Add(10*time.Millisecond), - now, - 10, // 10ms - ), - refreshRatio: 0.0001, // 0.01% - lowerBoundDuration: time.Millisecond, - expectedDuration: 0, // 0.001ms rounds to 0ms - }, - { - name: "large TTL with high precision ratio", - token: token.New( - "username", - "password", - "rawToken", - now.Add(time.Hour), - now, - time.Hour.Milliseconds(), - ), - refreshRatio: 0.0001, // 0.01% - lowerBoundDuration: time.Millisecond, - expectedDuration: 360 * time.Millisecond, // 0.01% of 1 hour = 360ms - }, - { - name: "boundary case: refresh time exactly 1ms", - token: token.New( - "username", - "password", - "rawToken", - now.Add(100*time.Millisecond), - now, - 100, // 100ms - ), - refreshRatio: 0.01, // 1% - lowerBoundDuration: time.Millisecond, - expectedDuration: time.Millisecond, // 1ms refresh time - }, - { - name: "boundary case: refresh time just below 1ms", - token: token.New( - "username", - "password", - "rawToken", - now.Add(100*time.Millisecond), - now, - 100, // 100ms - ), - refreshRatio: 0.009, // 0.9% - lowerBoundDuration: time.Millisecond, - expectedDuration: 0, // 0.9ms rounds to 0ms - }, - { - name: "boundary case: refresh time just above 1ms", - token: token.New( - "username", - "password", - "rawToken", - now.Add(100*time.Millisecond), - now, - 100, // 100ms - ), - refreshRatio: 0.011, // 1.1% - lowerBoundDuration: time.Millisecond, - expectedDuration: time.Millisecond, // 1.1ms rounds to 1ms - }, - { - name: "large TTL with very small refresh ratio", - token: token.New( - "username", - "password", - "rawToken", - now.Add(24*time.Hour), - now, - (24 * time.Hour).Milliseconds(), - ), - refreshRatio: 0.0001, // 0.01% - lowerBoundDuration: time.Millisecond, - expectedDuration: 8*time.Second + 640*time.Millisecond, // 0.01% of 24 hours = 8.64s - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - manager := &entraidTokenManager{ - expirationRefreshRatio: tt.refreshRatio, - lowerBoundDuration: tt.lowerBoundDuration, - } - - duration := manager.durationToRenewal(tt.token) - assert.InDelta(t, float64(tt.expectedDuration), float64(duration), testDurationDelta, - "%s: expected %v, got %v", tt.name, tt.expectedDuration, duration) - }) - } -} - -func TestDurationToRenewalConcurrent(t *testing.T) { - manager := &entraidTokenManager{ - expirationRefreshRatio: 0.75, - lowerBoundDuration: time.Second, - } - - token := token.New( - "username", - "password", - "rawToken", - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - // Run multiple goroutines to test concurrent access - const goroutines = 10 - results := make(chan time.Duration, goroutines) - - for i := 0; i < goroutines; i++ { - go func() { - results <- manager.durationToRenewal(token) - }() - } - - // Collect results - var firstResult time.Duration - for i := 0; i < goroutines; i++ { - result := <-results - if i == 0 { - firstResult = result - } else { - // All results should be within 5ms of each other - assert.InDelta(t, firstResult.Milliseconds(), result.Milliseconds(), 5) - } - } -} diff --git a/manager/errors.go b/manager/errors.go deleted file mode 100644 index dac0e9a..0000000 --- a/manager/errors.go +++ /dev/null @@ -1,9 +0,0 @@ -package manager - -import "fmt" - -// ErrTokenManagerAlreadyStopped is returned when the token manager is already stopped. -var ErrTokenManagerAlreadyStopped = fmt.Errorf("token manager already stopped") - -// ErrTokenManagerAlreadyStarted is returned when the token manager is already started. -var ErrTokenManagerAlreadyStarted = fmt.Errorf("token manager already started") diff --git a/manager/manager_test.go b/manager/manager_test.go deleted file mode 100644 index cac02f7..0000000 --- a/manager/manager_test.go +++ /dev/null @@ -1,224 +0,0 @@ -package manager - -import ( - "context" - "net" - "os" - "time" - - "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/AzureAD/microsoft-authentication-library-for-go/apps/public" - "github.com/golang-jwt/jwt/v5" - "github.com/redis/go-redis-entraid/shared" - "github.com/redis/go-redis-entraid/token" - "github.com/stretchr/testify/mock" -) - -// testJWTToken is a JWT token for testing -// -// { -// "iss": "test jwt", -// "iat": 1743515011, -// "exp": 1775051011, -// "aud": "www.example.com", -// "sub": "test@test.com", -// "oid": "test" -// } -// -// key: qwertyuiopasdfghjklzxcvbnm123456 -const testJWTToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ0ZXN0IGp3dCIsImlhdCI6MTc0MzUxNTAxMSwiZXhwIjoxNzc1MDUxMDExLCJhdWQiOiJ3d3cuZXhhbXBsZS5jb20iLCJzdWIiOiJ0ZXN0QHRlc3QuY29tIiwib2lkIjoidGVzdCJ9.6RG721V2eFlSLsCRmo53kSRRrTZIe1UPdLZCUEvIarU" - -// testJWTExpiredToken is an expired JWT token for testing -// -// { -// "iss": "test jwt", -// "iat": 1617795148, -// "exp": 1617795148, -// "aud": "www.example.com", -// "sub": "test@test.com", -// "oid": "test" -// } -// -// key: qwertyuiopasdfghjklzxcvbnm123456 -const testJWTExpiredToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ0ZXN0IGp3dCIsImlhdCI6MTYxNzc5NTE0OCwiZXhwIjoxNjE3Nzk1MTQ4LCJhdWQiOiJ3d3cuZXhhbXBsZS5jb20iLCJzdWIiOiJ0ZXN0QHRlc3QuY29tIiwib2lkIjoidGVzdCJ9.IbGPhHRiPYcpUDrhAPf4h3gH1XXBOu560NYT59rUMzc" - -// testJWTWithZeroExpiryToken is a JWT token with zero expiry for testing -// -// { -// "iss": "test jwt", -// "iat": 1744025944, -// "exp": null, -// "aud": "www.example.com", -// "sub": "test@test.com", -// "oid": "test" -// } -// key: qwertyuiopasdfghjklzxcvbnm123456 -const testJWTWithZeroExpiryToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ0ZXN0IGp3dCIsImlhdCI6MTc0NDAyNTk0NCwiZXhwIjpudWxsLCJhdWQiOiJ3d3cuZXhhbXBsZS5jb20iLCJzdWIiOiJ0ZXN0QHRlc3QuY29tIiwib2lkIjoidGVzdCJ9.bLSANIzawE5Y6rgspvvUaRhkBq6Y4E0ggjXlmHRn8ew" - -var testTokenValid = token.New( - "test", - "password", - "test", - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), -) - -func newTestJWTToken(expiresOn time.Time) string { - claims := struct { - jwt.RegisteredClaims - Oid string `json:"oid,omitempty"` - }{} - - // Parse the token to extract claims, but note that signature verification - // should be handled by the identity provider - _, _, err := jwt.NewParser().ParseUnverified(testJWTToken, &claims) - if err != nil { - panic(err) - } - claims.ExpiresAt = jwt.NewNumericDate(expiresOn) - tokenStr, err := jwt.NewWithClaims(jwt.SigningMethodHS256, claims).SignedString([]byte("qwertyuiopasdfghjklzxcvbnm123456")) - if err != nil { - panic(err) - } - return tokenStr -} - -func newTestJWTTokenWithoutOID(expiresOn time.Time) string { - claims := struct { - jwt.RegisteredClaims - }{} - - // Parse the token to extract claims, but note that signature verification - // should be handled by the identity provider - _, _, err := jwt.NewParser().ParseUnverified(testJWTToken, &claims) - if err != nil { - panic(err) - } - claims.ExpiresAt = jwt.NewNumericDate(expiresOn) - tokenStr, err := jwt.NewWithClaims(jwt.SigningMethodHS256, claims).SignedString([]byte("qwertyuiopasdfghjklzxcvbnm123456")) - if err != nil { - panic(err) - } - return tokenStr -} - -type mockIdentityProviderResponseParser struct { - // Mock implementation of the IdentityProviderResponseParser interface - mock.Mock -} - -func (m *mockIdentityProviderResponseParser) ParseResponse(response shared.IdentityProviderResponse) (*token.Token, error) { - args := m.Called(response) - if args.Get(0) == nil { - return nil, args.Error(1) - } - return args.Get(0).(*token.Token), args.Error(1) -} - -type mockIdentityProvider struct { - // Mock implementation of the mockIdentityProvider interface - // Add any necessary fields or methods for the mock identity provider here - mock.Mock -} - -func (m *mockIdentityProvider) RequestToken(ctx context.Context) (shared.IdentityProviderResponse, error) { - args := m.Called(ctx) - if args.Get(0) == nil { - return nil, args.Error(1) - } - return args.Get(0).(shared.IdentityProviderResponse), args.Error(1) -} - -func newMockError(retriable bool) error { - if retriable { - return &mockError{ - isTimeout: true, - isTemporary: true, - error: os.ErrDeadlineExceeded, - } - } else { - return &mockError{ - isTimeout: false, - isTemporary: false, - error: os.ErrInvalid, - } - } -} - -type mockError struct { - // Mock implementation of the network error - error - isTimeout bool - isTemporary bool -} - -func (m *mockError) Error() string { - return "this is mock error" -} - -func (m *mockError) Timeout() bool { - return m.isTimeout -} -func (m *mockError) Temporary() bool { - return m.isTemporary -} -func (m *mockError) Unwrap() error { - return m.error -} - -func (m *mockError) Is(err error) bool { - return m.error == err -} - -var _ net.Error = (*mockError)(nil) - -type mockTokenListener struct { - // Mock implementation of the TokenManagerListener interface - mock.Mock - Id int32 -} - -func (m *mockTokenListener) OnNext(token *token.Token) { - _ = m.Called(token) -} - -func (m *mockTokenListener) OnError(err error) { - _ = m.Called(err) -} - -type authResult struct { - // ResultType is the type of the response (AuthResult, AccessToken, or RawToken) - ResultType string - // AuthResultVal is the auth result value - AuthResultVal *public.AuthResult - // AccessTokenVal is the access token value - AccessTokenVal *azcore.AccessToken - // RawTokenVal is the raw token value - RawTokenVal string -} - -func (a *authResult) Type() string { - return a.ResultType -} - -func (a *authResult) AuthResult() (public.AuthResult, error) { - if a.AuthResultVal == nil { - return public.AuthResult{}, shared.ErrAuthResultNotFound - } - return *a.AuthResultVal, nil -} - -func (a *authResult) AccessToken() (azcore.AccessToken, error) { - if a.AccessTokenVal == nil { - return azcore.AccessToken{}, shared.ErrAccessTokenNotFound - } - return *a.AccessTokenVal, nil -} - -func (a *authResult) RawToken() (string, error) { - if a.RawTokenVal == "" { - return "", shared.ErrRawTokenNotFound - } - return a.RawTokenVal, nil -} diff --git a/manager/token_manager.go b/manager/token_manager.go deleted file mode 100644 index 5083b94..0000000 --- a/manager/token_manager.go +++ /dev/null @@ -1,135 +0,0 @@ -package manager - -import ( - "context" - "fmt" - "sync" - "time" - - "github.com/redis/go-redis-entraid/shared" - "github.com/redis/go-redis-entraid/token" -) - -// TokenManagerOptions is a struct that contains the options for the TokenManager. -type TokenManagerOptions struct { - // ExpirationRefreshRatio is the ratio of the token expiration time to refresh the token. - // It is used to determine when to refresh the token. - // The value should be between 0 and 1. - // For example, if the expiration time is 1 hour and the ratio is 0.75, - // the token will be refreshed after 45 minutes. (the token is refreshed when 75% of its lifetime has passed) - // Precision is 4 decimal places. - // Closer to 1, the token will be refreshed later. We recommend not going above 0.9. - // - // default: 0.7 - ExpirationRefreshRatio float64 - - // LowerRefreshBound is the lower bound for the refresh time - // Represents the minimum time before token expiration to trigger a refresh. - // This value sets a fixed lower bound for when a token refresh should occur, regardless - // of the token's total lifetime. - // - // default: 0 (no lower bound, refresh based on ExpirationRefreshRatio) - LowerRefreshBound time.Duration - - // IdentityProviderResponseParser is an optional object that implements the IdentityProviderResponseParser interface. - // It is used to parse the response from the identity provider and extract the token. - // If not provided, the default implementation will be used. - // The objects ParseResponse method will be called to parse the response and return the token. - // - // required: false - // default: defaultIdentityProviderResponseParser - IdentityProviderResponseParser shared.IdentityProviderResponseParser - // RetryOptions is a struct that contains the options for retrying the token request. - // It contains the maximum number of attempts, initial delay, maximum delay, and backoff multiplier. - // - // The default values are 3 attempts, 1000 ms initial delay, 10000 ms maximum delay, and 2.0 backoff multiplier. - RetryOptions RetryOptions - - // RequestTimeout is the timeout for the request to the identity provider. - // - // default: 30 seconds - RequestTimeout time.Duration -} - -// RetryOptions is a struct that contains the options for retrying the token request. -type RetryOptions struct { - // IsRetryable is a function that checks if the error is retriable. - // It takes an error as an argument and returns a boolean value. - // - // default: defaultRetryableFunc - IsRetryable func(err error) bool - // MaxAttempts is the maximum number of attempts to retry the token request. - // - // default: 3 - MaxAttempts int - // InitialDelay is the initial delay before retrying the token request. - // - // default: 1 second - InitialDelay time.Duration - // MaxDelay is the maximum delay between retry attempts. - // - // default: 10 seconds - MaxDelay time.Duration - // BackoffMultiplier is the multiplier for the backoff delay. - // default: 2.0 - BackoffMultiplier float64 -} - -// TokenManager is an interface that defines the methods for managing tokens. -// It provides methods to get a token and start the token manager. -// The TokenManager is responsible for obtaining and refreshing the token. -// It is typically used in conjunction with an IdentityProvider to obtain the token. -type TokenManager interface { - // GetToken returns the token for authentication. - // It takes a boolean value forceRefresh as an argument. - GetToken(forceRefresh bool) (*token.Token, error) - // Start starts the token manager and returns a stopper function to stop the token manager - Start(listener TokenListener) (StopFunc, error) -} - -// StopFunc is a function that stops the token manager. -type StopFunc func() error - -// TokenListener is an interface that contains the methods for receiving updates from the token manager. -// The token manager will call the listener's OnTokenNext method with the updated token. -// If an error occurs, the token manager will call the listener's OnTokenError method with the error. -type TokenListener interface { - // OnNext is called when the token is updated. - OnNext(t *token.Token) - // OnError is called when an error occurs. - OnError(err error) -} - -// entraidIdentityProviderResponseParser is the default implementation of the IdentityProviderResponseParser interface. -var entraidIdentityProviderResponseParser shared.IdentityProviderResponseParser = &defaultIdentityProviderResponseParser{} - -// NewTokenManager creates a new TokenManager. -// It takes an IdentityProvider and TokenManagerOptions as arguments and returns a TokenManager interface. -// The IdentityProvider is used to obtain the token, and the TokenManagerOptions contains options for the TokenManager. -// The TokenManager is responsible for managing the token and refreshing it when necessary. -func NewTokenManager(idp shared.IdentityProvider, options TokenManagerOptions) (TokenManager, error) { - if options.ExpirationRefreshRatio < 0 || options.ExpirationRefreshRatio > 1 { - return nil, fmt.Errorf("expiration refresh ratio must be between 0 and 1") - } - options = defaultTokenManagerOptionsOr(options) - - if idp == nil { - return nil, fmt.Errorf("identity provider is required") - } - - ctx, ctxCancel := context.WithCancel(context.Background()) - return &entraidTokenManager{ - idp: idp, - token: nil, - closedChan: nil, - ctx: ctx, - ctxCancel: ctxCancel, - expirationRefreshRatio: options.ExpirationRefreshRatio, - lowerBoundDuration: options.LowerRefreshBound, - identityProviderResponseParser: options.IdentityProviderResponseParser, - retryOptions: options.RetryOptions, - requestTimeout: options.RequestTimeout, - tokenRWLock: &sync.RWMutex{}, - lock: &sync.Mutex{}, - }, nil -} diff --git a/manager/token_manager_test.go b/manager/token_manager_test.go deleted file mode 100644 index 8f1ce2a..0000000 --- a/manager/token_manager_test.go +++ /dev/null @@ -1,1913 +0,0 @@ -package manager - -import ( - "context" - "fmt" - "log" - "math/rand" - "os" - "reflect" - "runtime" - "strings" - "sync" - "sync/atomic" - "testing" - "time" - - "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/AzureAD/microsoft-authentication-library-for-go/apps/public" - "github.com/redis/go-redis-entraid/shared" - "github.com/redis/go-redis-entraid/token" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" -) - -var assertFuncNameMatches = func(t *testing.T, func1, func2 interface{}) { - funcName1 := runtime.FuncForPC(reflect.ValueOf(func1).Pointer()).Name() - funcName2 := runtime.FuncForPC(reflect.ValueOf(func2).Pointer()).Name() - assert.Equal(t, funcName1, funcName2) -} - -func TestTokenManager(t *testing.T) { - t.Parallel() - t.Run("Without IDP", func(t *testing.T) { - t.Parallel() - tokenManager, err := NewTokenManager(nil, - TokenManagerOptions{}, - ) - assert.Error(t, err) - assert.Nil(t, tokenManager) - }) - - t.Run("With IDP", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{}, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - }) -} - -func TestTokenManagerWithOptions(t *testing.T) { - t.Parallel() - t.Run("Bad Expiration Refresh Ration", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - options := TokenManagerOptions{ - ExpirationRefreshRatio: 5, - } - tokenManager, err := NewTokenManager(idp, options) - assert.Error(t, err) - assert.Nil(t, tokenManager) - }) - t.Run("With IDP and Options", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - options := TokenManagerOptions{ - ExpirationRefreshRatio: 0.5, - } - tokenManager, err := NewTokenManager(idp, options) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Equal(t, 0.5, tm.expirationRefreshRatio) - }) - t.Run("Default Options", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - options := TokenManagerOptions{} - tokenManager, err := NewTokenManager(idp, options) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Equal(t, DefaultExpirationRefreshRatio, tm.expirationRefreshRatio) - assert.NotNil(t, tm.retryOptions.IsRetryable) - assertFuncNameMatches(t, tm.retryOptions.IsRetryable, defaultIsRetryable) - assert.Equal(t, DefaultRetryOptionsMaxAttempts, tm.retryOptions.MaxAttempts) - assert.Equal(t, DefaultRetryOptionsInitialDelay, tm.retryOptions.InitialDelay) - assert.Equal(t, DefaultRetryOptionsMaxDelay, tm.retryOptions.MaxDelay) - assert.Equal(t, DefaultRetryOptionsBackoffMultiplier, tm.retryOptions.BackoffMultiplier) - }) -} - -func TestDefaultIdentityProviderResponseParserOr(t *testing.T) { - t.Parallel() - var f shared.IdentityProviderResponseParser = &mockIdentityProviderResponseParser{} - - result := defaultIdentityProviderResponseParserOr(f) - assert.NotNil(t, result) - assert.Equal(t, result, f) - - defaultParser := defaultIdentityProviderResponseParserOr(nil) - assert.NotNil(t, defaultParser) - assert.NotEqual(t, defaultParser, f) - assert.Equal(t, entraidIdentityProviderResponseParser, defaultParser) -} - -func TestDefaultIsRetryable(t *testing.T) { - t.Parallel() - // with network error timeout - t.Run("Non-Retryable Error", func(t *testing.T) { - t.Parallel() - err := &azcore.ResponseError{ - StatusCode: 500, - } - is := defaultIsRetryable(err) - assert.False(t, is) - }) - - t.Run("Nil Error", func(t *testing.T) { - t.Parallel() - var err error - is := defaultIsRetryable(err) - assert.True(t, is) - - is = defaultIsRetryable(nil) - assert.True(t, is) - }) - - t.Run("Retryable Error with Timeout", func(t *testing.T) { - t.Parallel() - err := newMockError(true) - result := defaultIsRetryable(err) - assert.True(t, result) - }) - t.Run("Retryable Error with Temporary", func(t *testing.T) { - t.Parallel() - err := newMockError(true) - result := defaultIsRetryable(err) - assert.True(t, result) - }) - - t.Run("Retryable Error with err parent of os.ErrDeadlineExceeded", func(t *testing.T) { - t.Parallel() - err := fmt.Errorf("timeout: %w", os.ErrDeadlineExceeded) - res := defaultIsRetryable(err) - assert.True(t, res) - }) -} - -func TestTokenManager_Close(t *testing.T) { - t.Parallel() - t.Run("Close", func(t *testing.T) { - t.Parallel() - var err error - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Nil(t, tm.listener) - assert.NotPanics(t, func() { - err = tm.stop() - assert.Error(t, err) - }) - rawResponse, err := shared.NewIDPResponse(shared.ResponseTypeRawToken, "test") - assert.NoError(t, err) - - idp.On("RequestToken", mock.Anything).Return(rawResponse, nil) - mParser.On("ParseResponse", rawResponse).Return(testTokenValid, nil) - listener.On("OnNext", testTokenValid).Return() - - var stopper StopFunc - assert.NotPanics(t, func() { - stopper, err = tokenManager.Start(listener) - assert.NotNil(t, stopper) - assert.NoError(t, err) - }) - assert.NotNil(t, tm.listener) - - err = stopper() - assert.Nil(t, tm.listener) - assert.NoError(t, err) - - assert.NotPanics(t, func() { - err = stopper() - assert.Error(t, err) - }) - }) - - t.Run("Close with Cancel", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Nil(t, tm.listener) - - rawResponse, err := shared.NewIDPResponse(shared.ResponseTypeRawToken, "test") - assert.NoError(t, err) - - idp.On("RequestToken", mock.Anything).Return(rawResponse, nil) - mParser.On("ParseResponse", rawResponse).Return(testTokenValid, nil) - listener.On("OnNext", testTokenValid).Return() - - assert.NotPanics(t, func() { - cancel, err := tokenManager.Start(listener) - assert.NotNil(t, cancel) - assert.NoError(t, err) - assert.NotNil(t, tm.listener) - err = cancel() - assert.NoError(t, err) - assert.Nil(t, tm.listener) - err = cancel() - assert.Error(t, err) - assert.Nil(t, tm.listener) - }) - }) - t.Run("Close in multiple threads", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Nil(t, tm.listener) - - rawResponse, err := shared.NewIDPResponse(shared.ResponseTypeRawToken, "test") - assert.NoError(t, err) - - idp.On("RequestToken", mock.Anything).Return(rawResponse, nil) - mParser.On("ParseResponse", rawResponse).Return(testTokenValid, nil) - listener.On("OnNext", testTokenValid).Return() - - assert.NotPanics(t, func() { - stopper, err := tokenManager.Start(listener) - assert.NotNil(t, stopper) - assert.NoError(t, err) - assert.NotNil(t, tm.listener) - var hasStopped int - var alreadyStopped int32 - wg := &sync.WaitGroup{} - - // Start 50000 goroutines to close the token manager - // and check if the listener is nil after each close. - numExecutions := 50000 - for i := 0; i < numExecutions; i++ { - wg.Add(1) - go func() { - defer wg.Done() - time.Sleep(time.Duration(int64(rand.Intn(100)) * int64(time.Millisecond))) - err := stopper() - if err == nil { - hasStopped += 1 - return - } else { - atomic.AddInt32(&alreadyStopped, 1) - } - assert.Nil(t, tm.listener) - assert.Error(t, err) - }() - } - wg.Wait() - assert.Nil(t, tm.listener) - assert.Equal(t, 1, hasStopped) - assert.Equal(t, int32(numExecutions-1), atomic.LoadInt32(&alreadyStopped)) - }) - }) -} - -func TestTokenManager_Start(t *testing.T) { - t.Parallel() - t.Run("Start in multiple threads", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Nil(t, tm.listener) - - rawResponse, err := shared.NewIDPResponse(shared.ResponseTypeRawToken, "test") - assert.NoError(t, err) - - idp.On("RequestToken", mock.Anything).Return(rawResponse, nil) - mParser.On("ParseResponse", rawResponse).Return(testTokenValid, nil) - listener.On("OnNext", testTokenValid).Return() - - assert.NotPanics(t, func() { - var hasStarted int - var alreadyStarted int32 - wg := &sync.WaitGroup{} - - numExecutions := 50000 - for i := 0; i < numExecutions; i++ { - wg.Add(1) - go func() { - defer wg.Done() - time.Sleep(time.Duration(int64(rand.Intn(100)) * int64(time.Millisecond))) - _, err := tokenManager.Start(listener) - if err == nil { - hasStarted += 1 - return - } else { - atomic.AddInt32(&alreadyStarted, 1) - } - assert.NotNil(t, tm.listener) - assert.Error(t, err) - }() - } - wg.Wait() - assert.NotNil(t, tm.listener) - assert.Equal(t, 1, hasStarted) - assert.Equal(t, int32(numExecutions-1), atomic.LoadInt32(&alreadyStarted)) - cancel, err := tokenManager.Start(listener) - assert.Nil(t, cancel) - assert.Error(t, err) - assert.NotNil(t, tm.listener) - }) - }) - - t.Run("concurrent stress token manager", func(t *testing.T) { - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Nil(t, tm.listener) - - rawResponse, err := shared.NewIDPResponse(shared.ResponseTypeRawToken, "test") - assert.NoError(t, err) - - assert.NotPanics(t, func() { - last := &atomic.Int32{} - wg := &sync.WaitGroup{} - - idp.On("RequestToken", mock.Anything).Return(rawResponse, nil) - mParser.On("ParseResponse", rawResponse).Return(testTokenValid, nil) - listener.On("OnNext", testTokenValid).Return() - numExecutions := int32(50000) - for i := int32(0); i < numExecutions; i++ { - wg.Add(1) - go func(num int32) { - defer wg.Done() - var err error - time.Sleep(time.Duration(int64(rand.Intn(1000)+(300-int(num)/2)) * int64(time.Millisecond))) - last.Store(num) - if num%2 == 0 { - err = tm.stop() - } else { - l := &mockTokenListener{Id: num} - l.On("OnNext", testTokenValid).Return() - _, err = tokenManager.Start(l) - } - if err != nil { - if err != ErrTokenManagerAlreadyStopped && err != ErrTokenManagerAlreadyStarted { - // this is un unexpected error, fail the test - assert.Error(t, err) - } - } - }(i) - } - wg.Wait() - lastExecution := last.Load() - if lastExecution%2 == 0 { - if tm.listener != nil { - l := tm.listener.(*mockTokenListener) - log.Printf("FAILING WITH lastExecution [STARTED]:[LISTENER:%d]: %d", l.Id, lastExecution) - } - assert.Nil(t, tm.listener) - } else { - if tm.listener == nil { - log.Printf("FAILING WITH lastExecution[STOPPED]: %d", lastExecution) - } - assert.NotNil(t, tm.listener) - stopper, err := tokenManager.Start(listener) - assert.Nil(t, stopper) - assert.Error(t, err) - // Stop the token manager with internal stop, since stopper should be nil - err = tm.stop() - assert.Nil(t, err) - } - assert.Nil(t, tm.listener) - }) - }) -} - -func TestDefaultIdentityProviderResponseParser(t *testing.T) { - t.Parallel() - parser := &defaultIdentityProviderResponseParser{} - t.Run("Default IdentityProviderResponseParser with type AuthResult", func(t *testing.T) { - t.Parallel() - authResultVal := testAuthResult(time.Now().Add(time.Hour).UTC()) - idpResponse := &authResult{ - ResultType: shared.ResponseTypeAuthResult, - AuthResultVal: authResultVal, - } - token1, err := parser.ParseResponse(idpResponse) - assert.NoError(t, err) - assert.NotNil(t, token1) - assert.InEpsilon(t, authResultVal.ExpiresOn.Unix(), token1.ExpirationOn().Unix(), 1) - }) - t.Run("Default IdentityProviderResponseParser with type AuthResult and empty token", func(t *testing.T) { - t.Parallel() - authResultVal := &public.AuthResult{ - ExpiresOn: time.Now().Add(time.Hour).UTC(), - AccessToken: "", - } - idpResponse := &authResult{ - ResultType: shared.ResponseTypeAuthResult, - AuthResultVal: authResultVal, - } - token1, err := parser.ParseResponse(idpResponse) - assert.Error(t, err) - assert.Nil(t, token1) - }) - t.Run("Default IdentityProviderResponseParser with type AuthResult and token without oid", func(t *testing.T) { - t.Parallel() - authResultVal := &public.AuthResult{ - ExpiresOn: time.Now().Add(time.Hour).UTC(), - AccessToken: newTestJWTTokenWithoutOID(time.Now().Add(time.Hour).UTC()), - } - idpResponse := &authResult{ - ResultType: shared.ResponseTypeAuthResult, - AuthResultVal: authResultVal, - } - token1, err := parser.ParseResponse(idpResponse) - assert.Error(t, err) - assert.Nil(t, token1) - }) - t.Run("Default IdentityProviderResponseParser with type AccessToken", func(t *testing.T) { - t.Parallel() - accessToken := &azcore.AccessToken{ - Token: testJWTToken, - ExpiresOn: time.Now().Add(time.Hour).UTC(), - } - idpResponse := &authResult{ - ResultType: shared.ResponseTypeAccessToken, - AccessTokenVal: accessToken, - } - token1, err := parser.ParseResponse(idpResponse) - assert.NoError(t, err) - assert.NotNil(t, token1) - assert.Equal(t, accessToken.ExpiresOn, token1.ExpirationOn()) - assert.Equal(t, accessToken.Token, token1.RawCredentials()) - }) - t.Run("Default IdentityProviderResponseParser with type RawToken", func(t *testing.T) { - t.Parallel() - idpResponse := &authResult{ - ResultType: shared.ResponseTypeRawToken, - RawTokenVal: testJWTToken, - } - token1, err := parser.ParseResponse(idpResponse) - assert.NoError(t, err) - assert.NotNil(t, token1) - }) - - t.Run("Default IdentityProviderResponseParser with expired JWT Token", func(t *testing.T) { - t.Parallel() - idpResponse := &authResult{ - ResultType: shared.ResponseTypeRawToken, - RawTokenVal: testJWTExpiredToken, - } - token1, err := parser.ParseResponse(idpResponse) - assert.Error(t, err) - assert.Nil(t, token1) - }) - - t.Run("Default IdentityProviderResponseParser with zero expiry JWT Token", func(t *testing.T) { - t.Parallel() - idpResponse := &authResult{ - ResultType: shared.ResponseTypeRawToken, - RawTokenVal: testJWTWithZeroExpiryToken, - } - token1, err := parser.ParseResponse(idpResponse) - assert.Error(t, err) - assert.Nil(t, token1) - }) - - t.Run("Default IdentityProviderResponseParser with type Unknown", func(t *testing.T) { - t.Parallel() - idpResponse := &authResult{ - ResultType: "Unknown", - } - token1, err := parser.ParseResponse(idpResponse) - assert.Error(t, err) - assert.Nil(t, token1) - }) - - types := []string{ - shared.ResponseTypeAuthResult, - shared.ResponseTypeAccessToken, - shared.ResponseTypeRawToken, - } - for _, rt := range types { - t.Run(fmt.Sprintf("Default IdentityProviderResponseParser with response type %s and nil value", rt), func(t *testing.T) { - idpResponse := &authResult{ - ResultType: rt, - } - token1, err := parser.ParseResponse(idpResponse) - assert.Error(t, err) - assert.Nil(t, token1) - }) - } - - t.Run("Default IdentityProviderResponseParser with response nil", func(t *testing.T) { - t.Parallel() - token1, err := parser.ParseResponse(nil) - assert.Error(t, err) - assert.Nil(t, token1) - }) - t.Run("Default IdentityProviderResponseParser with expired token", func(t *testing.T) { - t.Parallel() - authResultVal := testAuthResult(time.Now().Add(-time.Hour)) - idpResponse := &authResult{ - ResultType: shared.ResponseTypeAuthResult, - AuthResultVal: authResultVal, - } - token1, err := parser.ParseResponse(idpResponse) - assert.Error(t, err) - assert.Nil(t, token1) - }) -} - -func TestEntraidTokenManager_GetToken(t *testing.T) { - t.Parallel() - t.Run("GetToken", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Nil(t, tm.listener) - - rawResponse := &authResult{ - ResultType: shared.ResponseTypeRawToken, - RawTokenVal: "test", - } - - idp.On("RequestToken", mock.Anything).Return(rawResponse, nil) - mParser.On("ParseResponse", rawResponse).Return(testTokenValid, nil) - listener.On("OnNext", testTokenValid).Return() - - cancel, err := tokenManager.Start(listener) - assert.NotNil(t, cancel) - assert.NoError(t, err) - assert.NotNil(t, tm.listener) - - token1, err := tokenManager.GetToken(false) - assert.NoError(t, err) - assert.NotNil(t, token1) - }) - - t.Run("GetToken with cached token", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - - // First setup the manager with a token - rawResponse := &authResult{ - ResultType: shared.ResponseTypeRawToken, - RawTokenVal: "test", - } - - idp.On("RequestToken", mock.Anything).Return(rawResponse, nil) - mParser.On("ParseResponse", rawResponse).Return(testTokenValid, nil) - - // Get the token once to cache it - token1, err := tokenManager.GetToken(false) - assert.NoError(t, err) - assert.NotNil(t, token1) - - // Change the mock to return a different token to verify caching - differentToken := token.New( - "different", - "different", - "different", - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - mParser = &mockIdentityProviderResponseParser{} - mParser.On("ParseResponse", rawResponse).Return(differentToken, nil) - tm.identityProviderResponseParser = mParser - - // Get the token again, should return the cached token - token2, err := tokenManager.GetToken(false) - assert.NoError(t, err) - assert.NotNil(t, token2) - assert.Equal(t, token1, token2) - - // Verify that RequestToken was not called again - idp.AssertNumberOfCalls(t, "RequestToken", 1) - }) - - t.Run("GetToken with force refresh", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - - // First setup the manager with a token - rawResponse := &authResult{ - ResultType: shared.ResponseTypeRawToken, - RawTokenVal: "test", - } - - idp.On("RequestToken", mock.Anything).Return(rawResponse, nil) - mParser.On("ParseResponse", rawResponse).Return(testTokenValid, nil) - - // Get the token once to cache it - token1, err := tokenManager.GetToken(false) - assert.NoError(t, err) - assert.NotNil(t, token1) - - // Change the mock to return a different token - differentToken := token.New( - "different", - "different", - "different", - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - mParser = &mockIdentityProviderResponseParser{} - mParser.On("ParseResponse", rawResponse).Return(differentToken, nil) - tm.identityProviderResponseParser = mParser - - // Get the token with force refresh, should get the new token - token2, err := tokenManager.GetToken(true) - assert.NoError(t, err) - assert.NotNil(t, token2) - assert.Equal(t, differentToken, token2) - - // Verify that RequestToken was called again - idp.AssertNumberOfCalls(t, "RequestToken", 2) - }) - - t.Run("GetToken with valid cached token and positive duration", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - ExpirationRefreshRatio: 0.75, - LowerRefreshBound: time.Hour, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - - // Create a token that will have a positive duration - validToken := token.New( - "username", - "password", - "rawToken", - time.Now().Add(2*time.Hour), // Expires in 2 hours - time.Now(), - (2 * time.Hour).Milliseconds(), - ) - - // First get a token to cache it - rawResponse := &authResult{ - ResultType: shared.ResponseTypeRawToken, - RawTokenVal: "test", - } - - idp.On("RequestToken", mock.Anything).Return(rawResponse, nil) - mParser.On("ParseResponse", rawResponse).Return(validToken, nil) - - // Get the token once to cache it - token1, err := tokenManager.GetToken(false) - assert.NoError(t, err) - assert.NotNil(t, token1) - - // Change the mock to return a different token - differentToken := token.New( - "different", - "different", - "different", - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - mParser = &mockIdentityProviderResponseParser{} - mParser.On("ParseResponse", rawResponse).Return(differentToken, nil) - tm.identityProviderResponseParser = mParser - - // Get the token again without force refresh - token2, err := tokenManager.GetToken(false) - assert.NoError(t, err) - assert.NotNil(t, token2) - assert.Equal(t, token1, token2) // Should return the cached token - - // Verify that RequestToken was not called again - idp.AssertNumberOfCalls(t, "RequestToken", 1) - }) - - t.Run("GetToken with parse error", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Nil(t, tm.listener) - - rawResponse := &authResult{ - ResultType: shared.ResponseTypeRawToken, - RawTokenVal: "test", - } - - idp.On("RequestToken", mock.Anything).Return(rawResponse, nil) - mParser.On("ParseResponse", rawResponse).Return(nil, fmt.Errorf("parse error")) - listener.On("OnError", mock.Anything).Return() - - cancel, err := tokenManager.Start(listener) - assert.Error(t, err) - assert.Nil(t, cancel) - assert.Nil(t, tm.listener) - }) - t.Run("GetToken with expired token", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{}, - ) - assert.NoError(t, err) - - authResultVal := testAuthResult(time.Now().Add(-time.Hour)) - idpResponse := &authResult{ - ResultType: shared.ResponseTypeAuthResult, - AuthResultVal: authResultVal, - } - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Nil(t, tm.listener) - - idp.On("RequestToken", mock.Anything).Return(idpResponse, nil) - - token1, err := tokenManager.GetToken(false) - assert.Error(t, err) - assert.Nil(t, token1) - }) - - t.Run("GetToken with nil token", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{}, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - _, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - - rawResponse, err := shared.NewIDPResponse(shared.ResponseTypeRawToken, "test") - assert.NoError(t, err) - - idp.On("RequestToken", mock.Anything).Return(rawResponse, nil) - - token1, err := tokenManager.GetToken(false) - assert.Error(t, err) - assert.Nil(t, token1) - }) - - t.Run("GetToken with nil from parser", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - _, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - - idpResponse, err := shared.NewIDPResponse(shared.ResponseTypeRawToken, "test") - assert.NoError(t, err) - idp.On("RequestToken", mock.Anything).Return(idpResponse, nil) - mParser.On("ParseResponse", idpResponse).Return(nil, nil) - - token1, err := tokenManager.GetToken(false) - assert.Error(t, err) - assert.Nil(t, token1) - }) - - t.Run("GetToken with idp error", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - _, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - - idp.On("RequestToken", mock.Anything).Return(nil, fmt.Errorf("idp error")) - - token1, err := tokenManager.GetToken(false) - assert.Error(t, err) - assert.Nil(t, token1) - }) - - t.Run("GetToken with token set between checks", func(t *testing.T) { - t.Skip("Flaky test, can cause a race") - idp := &mockIdentityProvider{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - ExpirationRefreshRatio: 0.5, - LowerRefreshBound: time.Minute, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - - validToken := token.New( - "username", - "password", - "rawToken", - time.Now().Add(1*time.Hour), - time.Now(), - (1 * time.Hour).Milliseconds(), - ) - - // Step 1: Acquire the read lock - // This simulates a concurrent GetToken operation - // this should be a write lock since we are actually writing - // but it will block the get token if we acquire the write lock first - tm.tokenRWLock.RLock() - - // Step 2: Start GetToken in a goroutine (it will block on upgrading to write lock) - var token2 *token.Token - var err2 error - getTokenStarted := make(chan struct{}) - getTokenDone := make(chan struct{}) - go func() { - close(getTokenStarted) - token2, err2 = tokenManager.GetToken(false) - close(getTokenDone) - }() - - // Step 3: Wait for GetToken to start and block on write lock - <-getTokenStarted - // Give the goroutine a moment to reach the write lock - time.Sleep(1 * time.Millisecond) - // Step 4: Set the token - tm.token = validToken - // Step 5: Release the read lock so GetToken can proceed - tm.tokenRWLock.RUnlock() - - // Step 6: Wait for GetToken to finish - <-getTokenDone - - // Step 7: Assert the result - assert.NoError(t, err2) - assert.NotNil(t, token2) - assert.Equal(t, validToken, token2) - idp.AssertNotCalled(t, "RequestToken") - }) -} - -func TestEntraidTokenManager_durationToRenewal(t *testing.T) { - t.Parallel() - t.Run("durationToRenewal", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - tokenManager, err := NewTokenManager(idp, TokenManagerOptions{ - LowerRefreshBound: time.Hour, - }) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - - result := tm.durationToRenewal(nil) - // returns 0 for nil token - assert.Equal(t, time.Duration(0), result) - - // get token that expires before the lower bound - assert.NotPanics(t, func() { - expiresSoon := testAuthResult(time.Now().Add(tm.lowerBoundDuration - time.Minute).UTC()) - idpResponse, err := shared.NewIDPResponse(shared.ResponseTypeAuthResult, - expiresSoon) - assert.NoError(t, err) - idp.On("RequestToken", mock.Anything).Return(idpResponse, nil).Once() - tm.token = nil - _, err = tm.GetToken(false) - assert.NoError(t, err) - assert.NotNil(t, tm.token) - - // return zero, should happen now since it expires before the lower bound - result = tm.durationToRenewal(tm.token) - assert.Equal(t, time.Duration(0), result) - }) - - // get token that expires after the lower bound and expirationRefreshRatio to 1 - assert.NotPanics(t, func() { - tm.expirationRefreshRatio = 1 - expiresAfterlb := testAuthResult(time.Now().Add(tm.lowerBoundDuration + time.Hour).UTC()) - idpResponse, err := shared.NewIDPResponse(shared.ResponseTypeAuthResult, - expiresAfterlb) - assert.NoError(t, err) - idp.On("RequestToken", mock.Anything).Return(idpResponse, nil).Once() - tm.token = nil - _, err = tm.GetToken(false) - assert.NoError(t, err) - assert.NotNil(t, tm.token) - - // return time to lower bound, if the returned time will be after the lower bound - result = tm.durationToRenewal(tm.token) - assert.InEpsilon(t, time.Until(tm.token.ExpirationOn().Add(-1*tm.lowerBoundDuration)), result, float64(time.Second)) - }) - - }) -} - -func TestEntraidTokenManager_Streaming(t *testing.T) { - t.Parallel() - t.Run("Start and Close", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Nil(t, tm.listener) - - expiresIn := time.Second - expiresOn := time.Now().Add(expiresIn).UTC() - authResultVal := testAuthResult(expiresOn) - idpResponse := &authResult{ - ResultType: shared.ResponseTypeAuthResult, - AuthResultVal: authResultVal, - } - - idp.On("RequestToken", mock.Anything).Return(idpResponse, nil).Once() - token1 := token.New( - "test", - "test", - "debug", - expiresOn, - time.Now(), - time.Until(expiresOn).Milliseconds(), - ) - - mParser.On("ParseResponse", idpResponse).Return(token1, nil).Once() - - stopper, err := tokenManager.Start(listener) - assert.NotNil(t, stopper) - assert.NoError(t, err) - assert.NotNil(t, tm.listener) - - toRenewal := tm.durationToRenewal(tm.token) - assert.NotEqual(t, time.Duration(0), toRenewal) - time.Sleep(time.Millisecond) - toRenewal = tm.durationToRenewal(tm.token) - assert.NotEqual(t, expiresIn, toRenewal) - assert.True(t, expiresIn > toRenewal) - time.Sleep(toRenewal / 10) - assert.NotNil(t, tm.listener) - assert.NoError(t, stopper()) - assert.Nil(t, tm.listener) - assert.Panics(t, func() { - close(tm.closedChan) - }) - - time.Sleep(toRenewal) - // already stopped - assert.Error(t, stopper()) - mock.AssertExpectationsForObjects(t, idp, mParser, listener) - }) - - t.Run("Start and Listen with 0 renewal duration", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - LowerRefreshBound: time.Hour, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Nil(t, tm.listener) - - assert.NoError(t, err) - - expiresIn := time.Second - expiresOn := time.Now().Add(expiresIn).UTC() - - res := testAuthResult(expiresOn) - idpResponse := &authResult{ - ResultType: shared.ResponseTypeAuthResult, - AuthResultVal: res, - } - done := make(chan struct{}) - var twice int32 - var start, stop time.Time - idp.On("RequestToken", mock.Anything).Run(func(args mock.Arguments) { - expiresOn := time.Now().Add(expiresIn).UTC() - res := testAuthResult(expiresOn) - idpResponse.AuthResultVal = res - if atomic.LoadInt32(&twice) == 1 { - stop = time.Now() - close(done) - return - } else { - atomic.StoreInt32(&twice, 1) - start = time.Now() - } - }).Return(idpResponse, nil) - - listener.On("OnNext", mock.AnythingOfType("*token.Token")).Return() - - cancel, err := tokenManager.Start(listener) - assert.NotNil(t, cancel) - assert.NoError(t, err) - assert.NotNil(t, tm.listener) - - toRenewal := tm.durationToRenewal(tm.token) - assert.Equal(t, time.Duration(0), toRenewal) - assert.True(t, expiresIn > toRenewal) - - // wait for request token to be called - <-done - // wait a bit for listener to be notified - time.Sleep(10 * time.Millisecond) - assert.NoError(t, cancel()) - - assert.InDelta(t, stop.Sub(start), tm.retryOptions.InitialDelay, float64(200*time.Millisecond)) - - idp.AssertNumberOfCalls(t, "RequestToken", 2) - listener.AssertNumberOfCalls(t, "OnNext", 1) - mock.AssertExpectationsForObjects(t, idp, listener) - }) - - t.Run("Start and Listen with 0 renewal duration and closing the token", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - LowerRefreshBound: time.Hour, - RetryOptions: RetryOptions{ - InitialDelay: 5 * time.Second, - }, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Nil(t, tm.listener) - - assert.NoError(t, err) - - expiresIn := time.Second - expiresOn := time.Now().Add(expiresIn).UTC() - res := testAuthResult(expiresOn) - idpResponse := &authResult{ - ResultType: shared.ResponseTypeAuthResult, - AuthResultVal: res, - } - idp.On("RequestToken", mock.Anything).Run(func(args mock.Arguments) { - expiresOn := time.Now().Add(expiresIn).UTC() - res := testAuthResult(expiresOn) - idpResponse.AuthResultVal = res - }).Return(idpResponse, nil) - - cancel, err := tokenManager.Start(listener) - assert.NotNil(t, cancel) - assert.NoError(t, err) - assert.NotNil(t, tm.listener) - - toRenewal := tm.durationToRenewal(tm.token) - assert.Equal(t, time.Duration(0), toRenewal) - assert.True(t, expiresIn > toRenewal) - - time.Sleep(tm.retryOptions.InitialDelay / 2) - assert.NoError(t, cancel()) - assert.Nil(t, tm.listener) - assert.Panics(t, func() { - close(tm.closedChan) - }) - - // called only once since the token manager was closed prior to initial delay passing - idp.AssertNumberOfCalls(t, "RequestToken", 1) - mock.AssertExpectationsForObjects(t, idp, listener) - }) - - t.Run("Start and Listen", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{}, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Nil(t, tm.listener) - - assert.NoError(t, err) - - expiresIn := time.Second - expiresOn := time.Now().Add(expiresIn).UTC() - - res := testAuthResult(expiresOn) - idpResponse := &authResult{ - ResultType: shared.ResponseTypeAuthResult, - AuthResultVal: res, - } - idp.On("RequestToken", mock.Anything).Run(func(args mock.Arguments) { - expiresOn := time.Now().Add(expiresIn).UTC() - res := testAuthResult(expiresOn) - idpResponse.AuthResultVal = res - }).Return(idpResponse, nil) - - listener.On("OnNext", mock.AnythingOfType("*token.Token")).Return() - - cancel, err := tokenManager.Start(listener) - assert.NotNil(t, cancel) - assert.NoError(t, err) - assert.NotNil(t, tm.listener) - assert.NotNil(t, tm.token) - - toRenewal := tm.durationToRenewal(tm.token) - assert.NotEqual(t, time.Duration(0), toRenewal) - time.Sleep(time.Millisecond) - toRenewal = tm.durationToRenewal(tm.token) - assert.NotEqual(t, expiresIn, toRenewal) - assert.True(t, expiresIn > toRenewal) - - time.Sleep(toRenewal + time.Second) - - mock.AssertExpectationsForObjects(t, idp, listener) - }) - - t.Run("Start and Listen with retriable error", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{}, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Nil(t, tm.listener) - - assert.NoError(t, err) - - expiresIn := time.Second - expiresOn := time.Now().Add(expiresIn).UTC() - res := testAuthResult(expiresOn) - idpResponse := &authResult{ - ResultType: shared.ResponseTypeAuthResult, - AuthResultVal: res, - } - - noErrCall := idp.On("RequestToken", mock.Anything).Run(func(args mock.Arguments) { - expiresOn := time.Now().Add(expiresIn).UTC() - res := testAuthResult(expiresOn) - idpResponse.AuthResultVal = res - }).Return(idpResponse, nil) - - listener.On("OnError", mock.Anything).Run(func(args mock.Arguments) { - err := args.Get(0) - assert.NotNil(t, err) - }).Return().Maybe() - - cancel, err := tokenManager.Start(listener) - assert.NotNil(t, cancel) - assert.NoError(t, err) - assert.NotNil(t, tm.listener) - - noErrCall.Unset() - returnErr := newMockError(true) - idp.On("RequestToken", mock.Anything).Return(nil, returnErr) - - toRenewal := tm.durationToRenewal(tm.token) - assert.NotEqual(t, time.Duration(0), toRenewal) - time.Sleep(time.Millisecond) - toRenewal = tm.durationToRenewal(tm.token) - assert.NotEqual(t, expiresIn, toRenewal) - assert.True(t, expiresIn > toRenewal) - time.Sleep(toRenewal + 100*time.Millisecond) - idp.AssertNumberOfCalls(t, "RequestToken", 2) - mock.AssertExpectationsForObjects(t, idp, listener) - }) - - t.Run("Start and Listen with NOT retriable error", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{}, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Nil(t, tm.listener) - - assert.NoError(t, err) - - expiresIn := time.Second - expiresOn := time.Now().Add(expiresIn).UTC() - res := testAuthResult(expiresOn) - idpResponse := &authResult{ - ResultType: shared.ResponseTypeAuthResult, - AuthResultVal: res, - } - - noErrCall := idp.On("RequestToken", mock.Anything).Run(func(args mock.Arguments) { - expiresOn := time.Now().Add(expiresIn).UTC() - res := testAuthResult(expiresOn) - idpResponse.AuthResultVal = res - }).Return(idpResponse, nil) - - listener.On("OnError", mock.Anything).Run(func(args mock.Arguments) { - err := args.Get(0).(error) - assert.NotNil(t, err) - }).Return() - - cancel, err := tokenManager.Start(listener) - assert.NotNil(t, cancel) - assert.NoError(t, err) - assert.NotNil(t, tm.listener) - - noErrCall.Unset() - returnErr := newMockError(false) - idp.On("RequestToken", mock.Anything).Return(nil, returnErr) - - toRenewal := tm.durationToRenewal(tm.token) - assert.NotEqual(t, time.Duration(0), toRenewal) - time.Sleep(time.Millisecond) - toRenewal = tm.durationToRenewal(tm.token) - assert.NotEqual(t, expiresIn, toRenewal) - assert.True(t, expiresIn > toRenewal) - time.Sleep(toRenewal + 100*time.Millisecond) - - idp.AssertNumberOfCalls(t, "RequestToken", 2) - listener.AssertNumberOfCalls(t, "OnError", 1) - mock.AssertExpectationsForObjects(t, idp, listener) - }) - - t.Run("Start and Listen with retriable error - max retries and max delay", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - maxAttempts := 3 - maxDelay := 500 * time.Millisecond - initialDelay := 100 * time.Millisecond - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - RetryOptions: RetryOptions{ - MaxAttempts: maxAttempts, - MaxDelay: maxDelay, - InitialDelay: initialDelay, - BackoffMultiplier: 10, - }, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Nil(t, tm.listener) - - assert.NoError(t, err) - - expiresIn := time.Second - expiresOn := time.Now().Add(expiresIn).UTC() - res := testAuthResult(expiresOn) - res.IDToken.Oid = "test" - idpResponse := &authResult{ - ResultType: shared.ResponseTypeAuthResult, - AuthResultVal: res, - } - - noErrCall := idp.On("RequestToken", mock.Anything).Run(func(args mock.Arguments) { - expiresOn := time.Now().Add(expiresIn).UTC() - res := testAuthResult(expiresOn) - res.IDToken.Oid = "test" - idpResponse.AuthResultVal = res - }).Return(idpResponse, nil) - var start, end time.Time - var elapsed time.Duration - - _ = listener. - On("OnNext", mock.AnythingOfType("*token.Token")). - Run(func(_ mock.Arguments) { - start = time.Now() - }).Return().Maybe() - maxAttemptsReached := make(chan struct{}) - listener.On("OnError", mock.Anything).Run(func(args mock.Arguments) { - err := args.Get(0).(error) - end = time.Now() - elapsed = end.Sub(start) - assert.NotNil(t, err) - assert.ErrorContains(t, err, "max attempts reached") - close(maxAttemptsReached) - }).Return() - - cancel, err := tokenManager.Start(listener) - assert.NotNil(t, cancel) - assert.NoError(t, err) - assert.NotNil(t, tm.listener) - toRenewal := tm.durationToRenewal(tm.token) - assert.NotEqual(t, time.Duration(0), toRenewal) - time.Sleep(time.Millisecond) - toRenewal = tm.durationToRenewal(tm.token) - assert.NotEqual(t, expiresIn, toRenewal) - assert.True(t, expiresIn > toRenewal) - - noErrCall.Unset() - returnErr := newMockError(true) - - idp.On("RequestToken", mock.Anything).Return(nil, returnErr) - - select { - case <-time.After(toRenewal + time.Duration(maxAttempts)*maxDelay): - assert.Fail(t, "Timeout - max retries not reached") - case <-maxAttemptsReached: - } - - // initialRenewal window, maxAttempts - 1 * max delay + the initial one which was lower than max delay - allDelaysShouldBe := toRenewal - allDelaysShouldBe += initialDelay - allDelaysShouldBe += time.Duration(maxAttempts-1) * maxDelay - - assert.InEpsilon(t, elapsed, allDelaysShouldBe, float64(10*time.Millisecond)) - - idp.AssertNumberOfCalls(t, "RequestToken", tm.retryOptions.MaxAttempts+1) - mock.AssertExpectationsForObjects(t, idp, listener) - }) - t.Run("Start and Listen and close during retries", func(t *testing.T) { - t.Parallel() - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - RetryOptions: RetryOptions{ - MaxAttempts: 100, - }, - }, - ) - assert.NoError(t, err) - assert.NotNil(t, tokenManager) - tm, ok := tokenManager.(*entraidTokenManager) - assert.True(t, ok) - assert.Nil(t, tm.listener) - - assert.NoError(t, err) - - expiresIn := time.Second - expiresOn := time.Now().Add(expiresIn).UTC() - res := testAuthResult(expiresOn) - idpResponse := &authResult{ - ResultType: shared.ResponseTypeAuthResult, - AuthResultVal: res, - } - - noErrCall := idp.On("RequestToken", mock.Anything).Run(func(args mock.Arguments) { - expiresOn := time.Now().Add(expiresIn).UTC() - res := testAuthResult(expiresOn) - idpResponse.AuthResultVal = res - }).Return(idpResponse, nil) - - maxAttemptsReached := make(chan struct{}) - listener.On("OnError", mock.Anything).Run(func(args mock.Arguments) { - err := args.Get(0).(error) - assert.NotNil(t, err) - assert.ErrorContains(t, err, "max attempts reached") - close(maxAttemptsReached) - }).Return().Maybe() - - cancel, err := tokenManager.Start(listener) - assert.NotNil(t, cancel) - assert.NoError(t, err) - assert.NotNil(t, tm.listener) - - noErrCall.Unset() - returnErr := newMockError(true) - idp.On("RequestToken", mock.Anything).Return(nil, returnErr) - - toRenewal := tm.durationToRenewal(tm.token) - assert.NotEqual(t, time.Duration(0), toRenewal) - - time.Sleep(time.Millisecond) - toRenewal = tm.durationToRenewal(tm.token) - assert.NotEqual(t, expiresIn, toRenewal) - assert.True(t, expiresIn > toRenewal) - - time.Sleep(toRenewal + 500*time.Millisecond) - assert.Nil(t, cancel()) - - select { - case <-maxAttemptsReached: - assert.Fail(t, "Max retries reached, token manager not closed") - case <-tm.closedChan: - } - - time.Sleep(50 * time.Millisecond) - - // maxAttempts + the initial one - idp.AssertNumberOfCalls(t, "RequestToken", 2) - mock.AssertExpectationsForObjects(t, idp, listener) - }) -} - -func testAuthResult(expiersOn time.Time) *public.AuthResult { - r := &public.AuthResult{ - ExpiresOn: expiersOn, - AccessToken: newTestJWTToken(expiersOn), - } - return r -} - -func BenchmarkTokenManager_GetToken(b *testing.B) { - idp := &mockIdentityProvider{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - }, - ) - if err != nil { - b.Fatal(err) - } - - rawResponse, err := shared.NewIDPResponse(shared.ResponseTypeRawToken, "test") - if err != nil { - b.Fatal(err) - } - - idp.On("RequestToken", mock.Anything).Return(rawResponse, nil) - mParser.On("ParseResponse", rawResponse).Return(testTokenValid, nil) - - b.ResetTimer() - for i := 0; i < b.N; i++ { - _, _ = tokenManager.GetToken(false) - } -} - -func BenchmarkTokenManager_Start(b *testing.B) { - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - }, - ) - if err != nil { - b.Fatal(err) - } - - rawResponse, err := shared.NewIDPResponse(shared.ResponseTypeRawToken, "test") - if err != nil { - b.Fatal(err) - } - - idp.On("RequestToken", mock.Anything).Return(rawResponse, nil) - mParser.On("ParseResponse", rawResponse).Return(testTokenValid, nil) - listener.On("OnNext", testTokenValid).Return() - - b.ResetTimer() - for i := 0; i < b.N; i++ { - _, _ = tokenManager.Start(listener) - } -} - -func BenchmarkTokenManager_Close(b *testing.B) { - idp := &mockIdentityProvider{} - listener := &mockTokenListener{} - mParser := &mockIdentityProviderResponseParser{} - tokenManager, err := NewTokenManager(idp, - TokenManagerOptions{ - IdentityProviderResponseParser: mParser, - }, - ) - if err != nil { - b.Fatal(err) - } - - rawResponse, err := shared.NewIDPResponse(shared.ResponseTypeRawToken, "test") - if err != nil { - b.Fatal(err) - } - - idp.On("RequestToken", mock.Anything).Return(rawResponse, nil) - mParser.On("ParseResponse", rawResponse).Return(testTokenValid, nil) - listener.On("OnNext", testTokenValid).Return() - - stopper, err := tokenManager.Start(listener) - if err != nil { - b.Fatal(err) - } - - b.ResetTimer() - for i := 0; i < b.N; i++ { - _ = stopper() - } -} - -func BenchmarkTokenManager_durationToRenewal(b *testing.B) { - idp := &mockIdentityProvider{} - tokenManager, err := NewTokenManager(idp, TokenManagerOptions{ - LowerRefreshBound: time.Hour, - }) - if err != nil { - b.Fatal(err) - } - - tm, ok := tokenManager.(*entraidTokenManager) - if !ok { - b.Fatal("failed to cast to entraidTokenManager") - } - - expiresAfterlb := testAuthResult(time.Now().Add(tm.lowerBoundDuration + time.Hour).UTC()) - idpResponse, err := shared.NewIDPResponse(shared.ResponseTypeAuthResult, expiresAfterlb) - if err != nil { - b.Fatal(err) - } - - idp.On("RequestToken", mock.Anything).Return(idpResponse, nil) - _, err = tm.GetToken(false) - if err != nil { - b.Fatal(err) - } - - b.ResetTimer() - for i := 0; i < b.N; i++ { - tm.durationToRenewal(tm.token) - } -} - -// TestConcurrentTokenManagerOperations tests concurrent operations on the TokenManager -// to verify there are no deadlocks or race conditions in the implementation. -func TestConcurrentTokenManagerOperations(t *testing.T) { - t.Parallel() - - // Create a mock identity provider that returns predictable tokens - mockIdp := &concurrentMockIdentityProvider{ - tokenCounter: 0, - } - - // Create token manager with the mock provider - options := TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - LowerRefreshBound: 100 * time.Millisecond, - } - tm, err := NewTokenManager(mockIdp, options) - assert.NoError(t, err) - assert.NotNil(t, tm) - - // Number of concurrent operations to perform - const numConcurrentOps = 50 - const numGoroutines = 1000 - - // Channels to track received tokens and errors - tokenCh := make(chan *token.Token, numConcurrentOps*numGoroutines) - errorCh := make(chan error, numConcurrentOps*numGoroutines) - - // Channel to signal completion of all operations - doneCh := make(chan struct{}) - - // Track closers for cleanup - var closers sync.Map - - // Start multiple goroutines that will concurrently interact with the token manager - var wg sync.WaitGroup - wg.Add(numGoroutines) - - for i := 0; i < numGoroutines; i++ { - go func(routineID int) { - defer wg.Done() - - for j := 0; j < numConcurrentOps; j++ { - // Create a listener for this operation - listener := &concurrentTestTokenListener{ - onNextFunc: func(t *token.Token) { - select { - case tokenCh <- t: - default: - // Channel full, ignore - } - }, - onErrorFunc: func(err error) { - select { - case errorCh <- err: - default: - // Channel full, ignore - } - }, - } - - // Choose operation based on a pattern - // Using modulo for a deterministic pattern that exercises all operations - opType := j % 3 - - switch opType { - case 0: - // Start the token manager with a new listener - closeFunc, err := tm.Start(listener) - - if err != nil { - if err != ErrTokenManagerAlreadyStarted { - select { - case errorCh <- fmt.Errorf("failed to start token manager: %w", err): - default: - t.Fatalf("Goroutine %d, Operation %d: Failed to start token manager: %v", routineID, j, err) - } - } - continue - } - - // Store the closer for later cleanup - closerKey := fmt.Sprintf("closer-%d-%d", routineID, j) - closers.Store(closerKey, closeFunc) - - // Simulate some work - time.Sleep(time.Duration(500-rand.Intn(400)) * time.Millisecond) - - case 1: - // Get current token - token, err := tm.GetToken(false) - if err != nil { - select { - case errorCh <- fmt.Errorf("failed to get token: %w", err): - default: - t.Fatalf("Goroutine %d, Operation %d: Failed to get token: %v", routineID, j, err) - } - } else if token != nil { - select { - case tokenCh <- token: - default: - // Channel full, ignore - } - } - - case 2: - // Close a previously created token manager listener - // This simulates multiple subscriptions being created and destroyed - closers.Range(func(key, value interface{}) bool { - if j%10 > 7 { // Only close some of the time based on a pattern - closeFunc := value.(StopFunc) - if err := closeFunc(); err != nil { - if err != ErrTokenManagerAlreadyStopped { - select { - case errorCh <- fmt.Errorf("failed to close token manager: %w", err): - default: - t.Fatalf("Goroutine %d, Operation %d: Failed to close token manager: %v", routineID, j, err) - } - } - } - - closers.Delete(key) - return false // stop after finding one to close - } - return true - }) - } - } - }(i) - } - - // Wait for all operations to complete or timeout - go func() { - wg.Wait() - close(doneCh) - }() - - // Use a timeout to detect deadlocks - select { - case <-doneCh: - // All operations completed successfully - t.Log("All concurrent operations completed successfully") - case <-time.After(30 * time.Second): - t.Fatal("test timed out, possible deadlock detected") - } - - // Count operations by type - var startCount, getTokenCount, closeCount int32 - - // Collect all ops from goroutines - for i := 0; i < numGoroutines; i++ { - for j := 0; j < numConcurrentOps; j++ { - opType := j % 3 - switch opType { - case 0: - atomic.AddInt32(&startCount, 1) - case 1: - atomic.AddInt32(&getTokenCount, 1) - case 2: - atomic.AddInt32(&closeCount, 1) - } - } - } - - // Clean up any remaining closers - closers.Range(func(key, value interface{}) bool { - closeFunc := value.(StopFunc) - _ = closeFunc() // Ignore errors during cleanup - return true - }) - - // Close channels to avoid goroutine leaks - close(tokenCh) - close(errorCh) - - // Count tokens and check their validity - var tokens []*token.Token - for t := range tokenCh { - tokens = append(tokens, t) - } - - // Collect and categorize errors - var startErrors, getTokenErrors, closeErrors, otherErrors []error - for err := range errorCh { - errStr := err.Error() - if strings.Contains(errStr, "failed to start token manager") { - startErrors = append(startErrors, err) - } else if strings.Contains(errStr, "failed to get token") { - getTokenErrors = append(getTokenErrors, err) - } else if strings.Contains(errStr, "failed to close token manager") { - closeErrors = append(closeErrors, err) - } else { - otherErrors = append(otherErrors, err) - t.Fatalf("Unexpected error during concurrent operations: %v", err) - } - } - - totalOps := startCount + getTokenCount + closeCount - expectedOps := int32(numGoroutines * numConcurrentOps) - - // Report operation counts - t.Logf("Concurrent test summary:") - t.Logf("- Total operations executed: %d (expected: %d)", totalOps, expectedOps) - t.Logf("- Start operations: %d (with %d errors)", startCount, len(startErrors)) - t.Logf("- GetToken operations: %d (with %d errors, %d successful)", - getTokenCount, len(getTokenErrors), len(tokens)) - t.Logf("- Close operations: %d (with %d errors)", closeCount, len(closeErrors)) - - // Some errors are expected due to concurrent operations - // but we should have received tokens successfully - assert.Equal(t, expectedOps, totalOps, "All operations should be accounted for") - assert.True(t, len(tokens) > 0, "Should have received tokens") - - // Verify the token manager still works after all the concurrent operations - finalListener := &concurrentTestTokenListener{ - onNextFunc: func(t *token.Token) { - // Just verify we get a token - don't use assert within this callback - if t == nil { - panic("Final token should not be nil") - } - }, - onErrorFunc: func(err error) { - t.Errorf("Unexpected error in final listener: %v", err) - }, - } - - closeFunc, err := tm.Start(finalListener) - if err != nil && err != ErrTokenManagerAlreadyStarted { - t.Fatalf("Failed to start token manager after concurrent operations: %v", err) - } - if closeFunc != nil { - defer closeFunc() - } - - // Get token one more time to verify everything still works - finalToken, err := tm.GetToken(true) - assert.NoError(t, err, "Should be able to get token after concurrent operations") - assert.NotNil(t, finalToken, "Final token should not be nil") -} - -// concurrentTestTokenListener is a test implementation of TokenListener for concurrent tests -type concurrentTestTokenListener struct { - onNextFunc func(*token.Token) - onErrorFunc func(error) -} - -func (l *concurrentTestTokenListener) OnNext(t *token.Token) { - if l.onNextFunc != nil { - l.onNextFunc(t) - } -} - -func (l *concurrentTestTokenListener) OnError(err error) { - if l.onErrorFunc != nil { - l.onErrorFunc(err) - } -} - -// concurrentMockIdentityProvider is a mock implementation of shared.IdentityProvider for concurrent tests -type concurrentMockIdentityProvider struct { - tokenCounter int - mutex sync.Mutex -} - -func (m *concurrentMockIdentityProvider) RequestToken(_ context.Context) (shared.IdentityProviderResponse, error) { - m.mutex.Lock() - defer m.mutex.Unlock() - - m.tokenCounter++ - - // Use the existing test JWT token which is already properly formatted - resp, err := shared.NewIDPResponse(shared.ResponseTypeRawToken, testJWTToken) - if err != nil { - return nil, err - } - return resp, nil -} diff --git a/providers.go b/providers.go deleted file mode 100644 index b4032a0..0000000 --- a/providers.go +++ /dev/null @@ -1,167 +0,0 @@ -package entraid - -import ( - "fmt" - - "github.com/redis/go-redis-entraid/identity" - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis-entraid/shared" - "github.com/redis/go-redis/v9/auth" -) - -// CredentialsProviderOptions is a struct that holds the options for the credentials provider. -// It is used to configure the streaming credentials provider when requesting a token with a token manager. -type CredentialsProviderOptions struct { - // ClientID is the client ID of the identity. - // This is used to identify the identity when requesting a token. - // - // Deprecated: This field is not used and will be removed in a future version. - // The ClientID should be part of the IdentityProvider options (e.g. ConfidentialIdentityProviderOptions, not the CredentialsProviderOptions) - // There is a ClientID in the ConfidentialIdentityProviderOptions that is a required field and should be set by the user. - // TODO(ndyakov): Remove this in v2.0.0 - ClientID string - - // TokenManagerOptions is the options for the token manager. - // This is used to configure the token manager when requesting a token. - TokenManagerOptions manager.TokenManagerOptions - - // tokenManagerFactory is a private field that can be injected from within the package. - // It is used to create a token manager for the credentials provider. - tokenManagerFactory func(shared.IdentityProvider, manager.TokenManagerOptions) (manager.TokenManager, error) -} - -// defaultTokenManagerFactory is the default implementation of the token manager factory. -// It creates a new token manager using the provided identity provider and options. -func defaultTokenManagerFactory(provider shared.IdentityProvider, options manager.TokenManagerOptions) (manager.TokenManager, error) { - return manager.NewTokenManager(provider, options) -} - -// getTokenManagerFactory returns the token manager factory to use. -// If no factory is provided, it returns the default implementation. -func (o *CredentialsProviderOptions) getTokenManagerFactory() func(shared.IdentityProvider, manager.TokenManagerOptions) (manager.TokenManager, error) { - if o.tokenManagerFactory == nil { - return defaultTokenManagerFactory - } - return o.tokenManagerFactory -} - -// Managed identity type - -// ManagedIdentityCredentialsProviderOptions is a struct that holds the options for the managed identity credentials provider. -type ManagedIdentityCredentialsProviderOptions struct { - // CredentialsProviderOptions is the options for the credentials provider. - // This is used to configure the credentials provider when requesting a token. - // It is used to specify the client ID, tenant ID, and scopes for the identity. - CredentialsProviderOptions - - // ManagedIdentityProviderOptions is the options for the managed identity provider. - // This is used to configure the managed identity provider when requesting a token. - identity.ManagedIdentityProviderOptions -} - -// NewManagedIdentityCredentialsProvider creates a new streaming credentials provider for managed identity. -// It uses the provided options to configure the provider. -// Use this when you want either a system assigned identity or a user assigned identity. -// The system assigned identity is automatically managed by Azure and does not require any additional configuration. -// The user assigned identity is a separate resource that can be managed independently. -func NewManagedIdentityCredentialsProvider(options ManagedIdentityCredentialsProviderOptions) (auth.StreamingCredentialsProvider, error) { - // Create a new identity provider using the managed identity type. - idp, err := identity.NewManagedIdentityProvider(options.ManagedIdentityProviderOptions) - if err != nil { - return nil, fmt.Errorf("cannot create managed identity provider: %w", err) - } - - // Create a new token manager using the identity provider. - tokenManager, err := options.getTokenManagerFactory()(idp, options.TokenManagerOptions) - if err != nil { - return nil, fmt.Errorf("cannot create token manager: %w", err) - } - // Create a new credentials provider using the token manager. - credentialsProvider, err := NewCredentialsProvider(tokenManager, options.CredentialsProviderOptions) - if err != nil { - return nil, fmt.Errorf("cannot create credentials provider: %w", err) - } - - return credentialsProvider, nil -} - -// ConfidentialCredentialsProviderOptions is a struct that holds the options for the confidential credentials provider. -// It is used to configure the credentials provider when requesting a token. -type ConfidentialCredentialsProviderOptions struct { - // CredentialsProviderOptions is the options for the credentials provider. - // This is used to configure the credentials provider when requesting a token. - CredentialsProviderOptions - - // ConfidentialIdentityProviderOptions is the options for the confidential identity provider. - // This is used to configure the identity provider when requesting a token. - identity.ConfidentialIdentityProviderOptions -} - -// NewConfidentialCredentialsProvider creates a new confidential credentials provider. -// It uses client id and client credentials to authenticate with the identity provider. -// The client credentials can be either a client secret or a client certificate. -func NewConfidentialCredentialsProvider(options ConfidentialCredentialsProviderOptions) (auth.StreamingCredentialsProvider, error) { - // If the client ID is not provided in the confidential identity provider options, use the one from the credentials provider options. - // Those are duplicated and should be the same and the one in the credentials provider options is deprecated. - // TODO(ndyakov): Remove this in a version v2.0.0 when ClientID is removed from CredentialsProviderOptions. - if options.ConfidentialIdentityProviderOptions.ClientID == "" { - options.ConfidentialIdentityProviderOptions.ClientID = options.CredentialsProviderOptions.ClientID - } - - // Create a new identity provider using the client ID and client credentials. - idp, err := identity.NewConfidentialIdentityProvider(options.ConfidentialIdentityProviderOptions) - if err != nil { - return nil, fmt.Errorf("cannot create confidential identity provider: %w", err) - } - - // Create a new token manager using the identity provider. - tokenManager, err := options.getTokenManagerFactory()(idp, options.TokenManagerOptions) - if err != nil { - return nil, fmt.Errorf("cannot create token manager: %w", err) - } - - // Create a new credentials provider using the token manager. - credentialsProvider, err := NewCredentialsProvider(tokenManager, options.CredentialsProviderOptions) - if err != nil { - return nil, fmt.Errorf("cannot create credentials provider: %w", err) - } - return credentialsProvider, nil -} - -// DefaultAzureCredentialsProviderOptions is a struct that holds the options for the default azure credentials provider. -// It is used to configure the credentials provider when requesting a token. -type DefaultAzureCredentialsProviderOptions struct { - // CredentialsProviderOptions is the options for the credentials provider. - // This is used to configure the credentials provider when requesting a token. - // It includes the clientId and TokenManagerOptions. - CredentialsProviderOptions - // DefaultAzureIdentityProviderOptions is the options for the default azure identity provider. - // This is used to configure the identity provider when requesting a token. - // It is used to specify the client ID, tenant ID, and scopes for the identity. - identity.DefaultAzureIdentityProviderOptions -} - -// NewDefaultAzureCredentialsProvider creates a new default azure credentials provider. -// It uses the default azure identity provider to authenticate with the identity provider. -// The default azure identity provider is a special type of identity provider that uses the default azure identity to authenticate. -// It is used to authenticate with the identity provider when requesting a token. -func NewDefaultAzureCredentialsProvider(options DefaultAzureCredentialsProviderOptions) (auth.StreamingCredentialsProvider, error) { - // Create a new identity provider using the default azure identity type. - idp, err := identity.NewDefaultAzureIdentityProvider(options.DefaultAzureIdentityProviderOptions) - if err != nil { - return nil, fmt.Errorf("cannot create default azure identity provider: %w", err) - } - - // Create a new token manager using the identity provider. - tokenManager, err := options.getTokenManagerFactory()(idp, options.TokenManagerOptions) - if err != nil { - return nil, fmt.Errorf("cannot create token manager: %w", err) - } - - // Create a new credentials provider using the token manager. - credentialsProvider, err := NewCredentialsProvider(tokenManager, options.CredentialsProviderOptions) - if err != nil { - return nil, fmt.Errorf("cannot create credentials provider: %w", err) - } - return credentialsProvider, nil -} diff --git a/providers_test.go b/providers_test.go deleted file mode 100644 index da0a01b..0000000 --- a/providers_test.go +++ /dev/null @@ -1,576 +0,0 @@ -package entraid - -import ( - "errors" - "fmt" - "testing" - "time" - - "github.com/redis/go-redis-entraid/identity" - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis-entraid/shared" - "github.com/redis/go-redis-entraid/token" - "github.com/redis/go-redis/v9/auth" - "github.com/stretchr/testify/assert" -) - -func TestNewManagedIdentityCredentialsProvider(t *testing.T) { - tests := []struct { - name string - options ManagedIdentityCredentialsProviderOptions - expectedError error - }{ - { - name: "valid managed identity options", - options: ManagedIdentityCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - UserAssignedObjectID: "test-client-id", - ManagedIdentityType: identity.UserAssignedObjectID, - Scopes: []string{identity.RedisScopeDefault}, - }, - }, - expectedError: nil, - }, - { - name: "system assigned identity", - options: ManagedIdentityCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - ManagedIdentityType: identity.SystemAssignedIdentity, - Scopes: []string{identity.RedisScopeDefault}, - }, - }, - expectedError: nil, - }, - { - name: "invalid managed identity type", - options: ManagedIdentityCredentialsProviderOptions{ - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - ManagedIdentityType: "invalid-type", - }, - }, - expectedError: errors.New("invalid managed identity type"), - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - // Create a test token - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - // Set the token manager factory in the options - tt.options.tokenManagerFactory = testFakeTokenManagerFactory(testToken, nil) - - provider, err := NewManagedIdentityCredentialsProvider(tt.options) - if tt.expectedError != nil { - assert.Error(t, err) - assert.Nil(t, provider) - } else { - assert.NoError(t, err) - assert.NotNil(t, provider) - - // Test the provider with a mock listener - listener := &mockCredentialsListener{LastTokenCh: make(chan string)} - tk, cancel, err := provider.Subscribe(listener) - defer func() { - err := cancel() - if err != nil { - panic(err) - } - }() - assert.Equal(t, rawTokenString, tk.RawCredentials()) - assert.NoError(t, err) - } - }) - } -} - -func TestNewConfidentialCredentialsProvider(t *testing.T) { - tests := []struct { - name string - options ConfidentialCredentialsProviderOptions - expectedError error - }{ - { - name: "valid confidential options with client secret", - options: ConfidentialCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - ConfidentialIdentityProviderOptions: identity.ConfidentialIdentityProviderOptions{ - ClientID: "test-client-id", - CredentialsType: identity.ClientSecretCredentialType, - ClientSecret: "test-secret", - Scopes: []string{identity.RedisScopeDefault}, - Authority: identity.AuthorityConfiguration{}, - }, - }, - expectedError: nil, - }, - { - name: "missing required fields", - options: ConfidentialCredentialsProviderOptions{ - ConfidentialIdentityProviderOptions: identity.ConfidentialIdentityProviderOptions{ - CredentialsType: identity.ClientSecretCredentialType, - }, - }, - expectedError: errors.New("client ID is required"), - }, - { - name: "invalid credentials type", - options: ConfidentialCredentialsProviderOptions{ - ConfidentialIdentityProviderOptions: identity.ConfidentialIdentityProviderOptions{ - ClientID: "test-client-id", - CredentialsType: "invalid-type", - }, - }, - expectedError: errors.New("invalid credentials type"), - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - // Create a test token - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - // Set the token manager factory in the options - tt.options.tokenManagerFactory = testFakeTokenManagerFactory(testToken, nil) - - provider, err := NewConfidentialCredentialsProvider(tt.options) - if tt.expectedError != nil { - assert.Error(t, err) - assert.Nil(t, provider) - } else { - assert.NoError(t, err) - assert.NotNil(t, provider) - - // Test the provider with a mock listener - listener := &mockCredentialsListener{LastTokenCh: make(chan string)} - credentials, cancel, err := provider.Subscribe(listener) - defer func() { - err := cancel() - if err != nil { - panic(err) - } - }() - assert.Equal(t, rawTokenString, credentials.RawCredentials()) - assert.NoError(t, err) - } - }) - } -} - -func TestNewDefaultAzureCredentialsProvider(t *testing.T) { - tests := []struct { - name string - options DefaultAzureCredentialsProviderOptions - expectedError error - }{ - { - name: "valid default azure options", - options: DefaultAzureCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - DefaultAzureIdentityProviderOptions: identity.DefaultAzureIdentityProviderOptions{ - Scopes: []string{identity.RedisScopeDefault}, - }, - }, - expectedError: nil, - }, - { - name: "empty options", - options: DefaultAzureCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - }, - expectedError: nil, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - // Create a test token - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - // Set the token manager factory in the options - tt.options.tokenManagerFactory = testFakeTokenManagerFactory(testToken, nil) - - provider, err := NewDefaultAzureCredentialsProvider(tt.options) - if tt.expectedError != nil { - assert.Error(t, err) - assert.Nil(t, provider) - } else { - assert.NoError(t, err) - assert.NotNil(t, provider) - - // Test the provider with a mock listener - listener := &mockCredentialsListener{LastTokenCh: make(chan string)} - tk, cancel, err := provider.Subscribe(listener) - defer func() { - err := cancel() - if err != nil { - panic(err) - } - }() - assert.Equal(t, rawTokenString, tk.RawCredentials()) - assert.NoError(t, err) - } - }) - } -} - -func TestCredentialsProviderInterface(t *testing.T) { - // Test that all providers implement the StreamingCredentialsProvider interface - tests := []struct { - name string - provider auth.StreamingCredentialsProvider - }{ - { - name: "managed identity provider", - provider: func() auth.StreamingCredentialsProvider { - options := ManagedIdentityCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - UserAssignedObjectID: "test-client-id", - ManagedIdentityType: identity.UserAssignedObjectID, - Scopes: []string{identity.RedisScopeDefault}, - }, - } - - // Create a test token - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - // Set the token manager factory in the options - options.tokenManagerFactory = testFakeTokenManagerFactory(testToken, nil) - - p, _ := NewManagedIdentityCredentialsProvider(options) - return p - }(), - }, - { - name: "confidential provider", - provider: func() auth.StreamingCredentialsProvider { - options := ConfidentialCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - ConfidentialIdentityProviderOptions: identity.ConfidentialIdentityProviderOptions{ - ClientID: "test-client-id", - CredentialsType: identity.ClientSecretCredentialType, - ClientSecret: "test-secret", - Scopes: []string{identity.RedisScopeDefault}, - Authority: identity.AuthorityConfiguration{}, - }, - } - - // Create a test token - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - // Set the token manager factory in the options - options.tokenManagerFactory = testFakeTokenManagerFactory(testToken, nil) - - p, _ := NewConfidentialCredentialsProvider(options) - return p - }(), - }, - { - name: "default azure provider", - provider: func() auth.StreamingCredentialsProvider { - options := DefaultAzureCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - DefaultAzureIdentityProviderOptions: identity.DefaultAzureIdentityProviderOptions{ - Scopes: []string{identity.RedisScopeDefault}, - }, - } - - // Create a test token - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - // Set the token manager factory in the options - options.tokenManagerFactory = testFakeTokenManagerFactory(testToken, nil) - - p, _ := NewDefaultAzureCredentialsProvider(options) - return p - }(), - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - // Test that the provider implements the interface by calling its methods - // Note: These are simplified tests as actual authentication would require Azure credentials - listener := &mockCredentialsListener{} - credentials, cancel, err := tt.provider.Subscribe(listener) - assert.NotNil(t, credentials) - assert.NotNil(t, cancel) - assert.NoError(t, err) - }) - } -} - -func TestNewManagedIdentityCredentialsProvider_TokenManagerFactoryError(t *testing.T) { - options := ManagedIdentityCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - UserAssignedObjectID: "test-client-id", - ManagedIdentityType: identity.UserAssignedObjectID, - Scopes: []string{identity.RedisScopeDefault}, - }, - } - - // Set the token manager factory to return an error - options.tokenManagerFactory = func(shared.IdentityProvider, manager.TokenManagerOptions) (manager.TokenManager, error) { - return nil, fmt.Errorf("token manager factory error") - } - - provider, err := NewManagedIdentityCredentialsProvider(options) - assert.Error(t, err) - assert.Contains(t, err.Error(), "token manager factory error") - assert.Nil(t, provider) -} - -func TestNewConfidentialCredentialsProvider_TokenManagerFactoryError(t *testing.T) { - options := ConfidentialCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - ConfidentialIdentityProviderOptions: identity.ConfidentialIdentityProviderOptions{ - ClientID: "test-client-id", - CredentialsType: identity.ClientSecretCredentialType, - ClientSecret: "test-secret", - Scopes: []string{identity.RedisScopeDefault}, - Authority: identity.AuthorityConfiguration{}, - }, - } - - // Set the token manager factory to return an error - options.tokenManagerFactory = func(shared.IdentityProvider, manager.TokenManagerOptions) (manager.TokenManager, error) { - return nil, fmt.Errorf("token manager factory error") - } - - provider, err := NewConfidentialCredentialsProvider(options) - assert.Error(t, err) - assert.Contains(t, err.Error(), "token manager factory error") - assert.Nil(t, provider) -} - -func TestNewDefaultAzureCredentialsProvider_TokenManagerFactoryError(t *testing.T) { - options := DefaultAzureCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - DefaultAzureIdentityProviderOptions: identity.DefaultAzureIdentityProviderOptions{ - Scopes: []string{identity.RedisScopeDefault}, - }, - } - - // Set the token manager factory to return an error - options.tokenManagerFactory = func(shared.IdentityProvider, manager.TokenManagerOptions) (manager.TokenManager, error) { - return nil, fmt.Errorf("token manager factory error") - } - - provider, err := NewDefaultAzureCredentialsProvider(options) - assert.Error(t, err) - assert.Contains(t, err.Error(), "token manager factory error") - assert.Nil(t, provider) -} - -func TestNewManagedIdentityCredentialsProvider_TokenManagerStartError(t *testing.T) { - options := ManagedIdentityCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - ManagedIdentityProviderOptions: identity.ManagedIdentityProviderOptions{ - UserAssignedObjectID: "test-client-id", - ManagedIdentityType: identity.UserAssignedObjectID, - Scopes: []string{identity.RedisScopeDefault}, - }, - } - - // Create a test token - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - // Create a mock token manager that returns an error on Start - mockTM := &fakeTokenManager{ - token: testToken, - err: fmt.Errorf("token manager start error"), - } - - // Set the token manager factory to return our mock - options.tokenManagerFactory = func(shared.IdentityProvider, manager.TokenManagerOptions) (manager.TokenManager, error) { - return mockTM, nil - } - - provider, err := NewManagedIdentityCredentialsProvider(options) - assert.Error(t, err) - assert.Contains(t, err.Error(), "token manager start error") - assert.Nil(t, provider) -} - -func TestNewConfidentialCredentialsProvider_TokenManagerStartError(t *testing.T) { - options := ConfidentialCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - ConfidentialIdentityProviderOptions: identity.ConfidentialIdentityProviderOptions{ - ClientID: "test-client-id", - CredentialsType: identity.ClientSecretCredentialType, - ClientSecret: "test-secret", - Scopes: []string{identity.RedisScopeDefault}, - Authority: identity.AuthorityConfiguration{}, - }, - } - - // Create a test token - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - // Create a mock token manager that returns an error on Start - mockTM := &fakeTokenManager{ - token: testToken, - err: fmt.Errorf("token manager start error"), - } - - // Set the token manager factory to return our mock - options.tokenManagerFactory = func(shared.IdentityProvider, manager.TokenManagerOptions) (manager.TokenManager, error) { - return mockTM, nil - } - - provider, err := NewConfidentialCredentialsProvider(options) - assert.Error(t, err) - assert.Contains(t, err.Error(), "token manager start error") - assert.Nil(t, provider) -} - -func TestNewDefaultAzureCredentialsProvider_TokenManagerStartError(t *testing.T) { - options := DefaultAzureCredentialsProviderOptions{ - CredentialsProviderOptions: CredentialsProviderOptions{ - TokenManagerOptions: manager.TokenManagerOptions{ - ExpirationRefreshRatio: 0.7, - }, - }, - DefaultAzureIdentityProviderOptions: identity.DefaultAzureIdentityProviderOptions{ - Scopes: []string{identity.RedisScopeDefault}, - }, - } - - // Create a test token - testToken := token.New( - "test", - "test", - rawTokenString, - time.Now().Add(time.Hour), - time.Now(), - time.Hour.Milliseconds(), - ) - - // Create a mock token manager that returns an error on Start - mockTM := &fakeTokenManager{ - token: testToken, - err: fmt.Errorf("token manager start error"), - } - - // Set the token manager factory to return our mock - options.tokenManagerFactory = func(shared.IdentityProvider, manager.TokenManagerOptions) (manager.TokenManager, error) { - return mockTM, nil - } - - provider, err := NewDefaultAzureCredentialsProvider(options) - assert.Error(t, err) - assert.Contains(t, err.Error(), "token manager start error") - assert.Nil(t, provider) -} diff --git a/shared/identity_provider_response.go b/shared/identity_provider_response.go deleted file mode 100644 index d60107a..0000000 --- a/shared/identity_provider_response.go +++ /dev/null @@ -1,88 +0,0 @@ -package shared - -import ( - "context" - - "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/AzureAD/microsoft-authentication-library-for-go/apps/public" - "github.com/redis/go-redis-entraid/internal" - "github.com/redis/go-redis-entraid/token" -) - -const ( - // ResponseTypeAuthResult is the type of the auth result. - ResponseTypeAuthResult = "AuthResult" - // ResponseTypeAccessToken is the type of the access token. - ResponseTypeAccessToken = "AccessToken" - // ResponseTypeRawToken is the type of the response when you have a raw string. - ResponseTypeRawToken = "RawToken" -) - -var ErrInvalidIDPResponse = internal.ErrInvalidIDPResponse -var ErrAuthResultNotFound = internal.ErrAuthResultNotFound -var ErrAccessTokenNotFound = internal.ErrAccessTokenNotFound -var ErrRawTokenNotFound = internal.ErrRawTokenNotFound - -// IdentityProviderResponseParser is an interface that defines the methods for parsing the identity provider response. -// It is used to parse the response from the identity provider and extract the token. -// If not provided, the default implementation will be used. -type IdentityProviderResponseParser interface { - ParseResponse(response IdentityProviderResponse) (*token.Token, error) -} - -// IdentityProviderResponse is an interface that defines the -// type method for the identity provider response. It is used to -// identify the type of response returned by the identity provider. -// The type can be either AuthResult, AccessToken, or RawToken. You can -// use this interface to check the type of the response and handle it accordingly. -// Available response types are: -// - ResponseTypeAuthResult: For Microsoft Authentication Library AuthResult -// - ResponseTypeAccessToken: For Azure SDK AccessToken -// - ResponseTypeRawToken: For raw token strings -type IdentityProviderResponse interface { - // Type returns the type of identity provider response - Type() string - // RawToken returns the raw token string. - // Returns ErrRawTokenNotFound if the raw token is not set. - RawToken() (string, error) -} - -// AuthResultIDPResponse is an interface that defines the method for getting the auth result. -// Returns ErrAuthResultNotFound if the auth result is not set. -type AuthResultIDPResponse interface { - IdentityProviderResponse - // AuthResult returns the Microsoft Authentication Library AuthResult. - // Returns ErrAuthResultNotFound if the auth result is not set. - AuthResult() (public.AuthResult, error) -} - -// AccessTokenIDPResponse is an interface that defines the method for getting the access token. -// Returns ErrAccessTokenNotFound if the access token is not set. -type AccessTokenIDPResponse interface { - IdentityProviderResponse - // AccessToken returns the Azure SDK AccessToken. - // Returns ErrAccessTokenNotFound if the access token is not set. - AccessToken() (azcore.AccessToken, error) -} - -type RawTokenIDPResponse interface { - IdentityProviderResponse -} - -// IdentityProvider is an interface that defines the methods for an identity provider. -// It is used to request a token for authentication. -// The identity provider is responsible for providing the raw authentication token. -type IdentityProvider interface { - // RequestToken requests a token from the identity provider. - // The context is passed to the request to allow for cancellation and timeouts. - // It returns the token, the expiration time, and an error if any. - RequestToken(ctx context.Context) (IdentityProviderResponse, error) -} - -// NewIDPResponse creates a new auth result based on the type provided. -// It returns an IdentityProviderResponse interface. -// Type can be either AuthResult, AccessToken, or RawToken. -// Second argument is the result of the type provided in the first argument. -func NewIDPResponse(responseType string, result interface{}) (IdentityProviderResponse, error) { - return internal.NewIDPResp(responseType, result) -} diff --git a/shared/identity_provider_response_test.go b/shared/identity_provider_response_test.go deleted file mode 100644 index 7150ce2..0000000 --- a/shared/identity_provider_response_test.go +++ /dev/null @@ -1,357 +0,0 @@ -package shared - -import ( - "testing" - "time" - - "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/AzureAD/microsoft-authentication-library-for-go/apps/public" - "github.com/redis/go-redis-entraid/token" - "github.com/stretchr/testify/assert" -) - -// Mock implementations for testing -type mockIDPResponse struct { - responseType string - authResult *public.AuthResult - accessToken *azcore.AccessToken - rawToken string -} - -func (m *mockIDPResponse) Type() string { - return m.responseType -} - -func (m *mockIDPResponse) AuthResult() (public.AuthResult, error) { - if m.authResult == nil { - return public.AuthResult{}, ErrAuthResultNotFound - } - return *m.authResult, nil -} - -func (m *mockIDPResponse) AccessToken() (azcore.AccessToken, error) { - if m.accessToken == nil { - return azcore.AccessToken{}, ErrAccessTokenNotFound - } - return *m.accessToken, nil -} - -func (m *mockIDPResponse) RawToken() (string, error) { - if m.rawToken == "" { - return "", ErrRawTokenNotFound - } - return m.rawToken, nil -} - -type mockIDPParser struct { - parseError error - token *token.Token -} - -func (m *mockIDPParser) ParseResponse(response IdentityProviderResponse) (*token.Token, error) { - if m.parseError != nil { - return nil, m.parseError - } - return m.token, nil -} - -type mockIDP struct { - response IdentityProviderResponse - err error -} - -func (m *mockIDP) RequestToken() (IdentityProviderResponse, error) { - if m.err != nil { - return nil, m.err - } - return m.response, nil -} - -func TestNewIDPResponse(t *testing.T) { - tests := []struct { - name string - responseType string - result interface{} - expectedError string - }{ - { - name: "Valid AuthResult pointer", - responseType: ResponseTypeAuthResult, - result: &public.AuthResult{}, - }, - { - name: "Valid AuthResult value", - responseType: ResponseTypeAuthResult, - result: public.AuthResult{}, - }, - { - name: "Valid AccessToken pointer", - responseType: ResponseTypeAccessToken, - result: &azcore.AccessToken{Token: "test-token"}, - }, - { - name: "Valid AccessToken value", - responseType: ResponseTypeAccessToken, - result: azcore.AccessToken{Token: "test-token"}, - }, - { - name: "Valid RawToken string", - responseType: ResponseTypeRawToken, - result: "test-token", - }, - { - name: "Valid RawToken string pointer", - responseType: ResponseTypeRawToken, - result: stringPtr("test-token"), - }, - { - name: "Nil result", - responseType: ResponseTypeAuthResult, - result: nil, - expectedError: ErrInvalidIDPResponse.Error(), - }, - { - name: "Nil string pointer", - responseType: ResponseTypeRawToken, - result: (*string)(nil), - expectedError: "raw token cannot be nil", - }, - { - name: "Invalid AuthResult type", - responseType: ResponseTypeAuthResult, - result: "not-an-auth-result", - expectedError: "invalid auth result type: expected public.AuthResult or *public.AuthResult", - }, - { - name: "Invalid AccessToken type", - responseType: ResponseTypeAccessToken, - result: "not-an-access-token", - expectedError: "invalid access token type: expected azcore.AccessToken or *azcore.AccessToken", - }, - { - name: "Invalid RawToken type", - responseType: ResponseTypeRawToken, - result: 123, - expectedError: "invalid raw token type: expected string or *string", - }, - { - name: "Invalid response type", - responseType: "InvalidType", - result: "test", - expectedError: "unsupported identity provider response type: InvalidType", - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - resp, err := NewIDPResponse(tt.responseType, tt.result) - - if tt.expectedError != "" { - assert.Error(t, err) - assert.Contains(t, err.Error(), tt.expectedError) - assert.Nil(t, resp) - return - } - - assert.NoError(t, err) - assert.NotNil(t, resp) - assert.Equal(t, tt.responseType, resp.Type()) - - switch tt.responseType { - case ResponseTypeAuthResult: - response, ok := resp.(AuthResultIDPResponse) - assert.True(t, ok) - res, err := response.AuthResult() - assert.NoError(t, err) - assert.NotNil(t, res) - case ResponseTypeAccessToken: - response, ok := resp.(AccessTokenIDPResponse) - assert.True(t, ok) - res, err := response.AccessToken() - assert.NoError(t, err) - assert.NotNil(t, res) - assert.NotEmpty(t, res.Token) - case ResponseTypeRawToken: - response, ok := resp.(RawTokenIDPResponse) - assert.True(t, ok) - res, err := response.RawToken() - assert.NoError(t, err) - assert.NotNil(t, res) - } - }) - } -} - -func stringPtr(s string) *string { - return &s -} - -func TestIdentityProviderResponse(t *testing.T) { - now := time.Now() - expires := now.Add(time.Hour) - - authResult := &public.AuthResult{ - AccessToken: "test-access-token", - ExpiresOn: expires, - } - - accessToken := &azcore.AccessToken{ - Token: "test-access-token", - ExpiresOn: expires, - } - - tests := []struct { - name string - responseType string - result interface{} - expectedType string - }{ - { - name: "AuthResult response", - responseType: ResponseTypeAuthResult, - result: authResult, - expectedType: ResponseTypeAuthResult, - }, - { - name: "AccessToken response", - responseType: ResponseTypeAccessToken, - result: accessToken, - expectedType: ResponseTypeAccessToken, - }, - { - name: "RawToken response", - responseType: ResponseTypeRawToken, - result: "test-raw-token", - expectedType: ResponseTypeRawToken, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - response, err := NewIDPResponse(tt.responseType, tt.result) - assert.NoError(t, err) - switch tt.expectedType { - case ResponseTypeAuthResult: - typedResponse, ok := response.(AuthResultIDPResponse) - assert.True(t, ok) - result, err := typedResponse.AuthResult() - assert.NoError(t, err) - assert.Equal(t, authResult.AccessToken, result.AccessToken) - assert.Equal(t, authResult.ExpiresOn, result.ExpiresOn) - case ResponseTypeAccessToken: - typedResponse, ok := response.(AccessTokenIDPResponse) - assert.True(t, ok) - token, err := typedResponse.AccessToken() - assert.NoError(t, err) - assert.Equal(t, accessToken.Token, token.Token) - assert.Equal(t, accessToken.ExpiresOn, token.ExpiresOn) - case ResponseTypeRawToken: - typedResponse, ok := response.(RawTokenIDPResponse) - assert.True(t, ok) - rawToken, err := typedResponse.RawToken() - assert.NoError(t, err) - assert.Equal(t, "test-raw-token", rawToken) - } - }) - } -} - -func TestIdentityProvider(t *testing.T) { - tests := []struct { - name string - provider *mockIDP - wantErr bool - }{ - { - name: "Successful token request", - provider: &mockIDP{ - response: &mockIDPResponse{ - responseType: ResponseTypeRawToken, - rawToken: "test-token", - }, - }, - wantErr: false, - }, - { - name: "Failed token request", - provider: &mockIDP{ - err: assert.AnError, - }, - wantErr: true, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - response, err := tt.provider.RequestToken() - if tt.wantErr { - assert.Error(t, err) - assert.Nil(t, response) - } else { - assert.NoError(t, err) - assert.NotNil(t, response) - assert.Equal(t, ResponseTypeRawToken, response.Type()) - rawTokenResponse, ok := response.(RawTokenIDPResponse) - assert.True(t, ok) - assert.NotNil(t, rawTokenResponse) - // Check the raw token value - rawToken, err := rawTokenResponse.RawToken() - assert.NoError(t, err) - assert.NotEmpty(t, rawToken) - assert.Equal(t, "test-token", rawToken) - } - }) - } -} - -func TestIdentityProviderResponseParser(t *testing.T) { - now := time.Now() - expires := now.Add(time.Hour) - testToken := token.New("test-user", "test-password", "test-token", expires, now, time.Hour.Milliseconds()) - - tests := []struct { - name string - parser *mockIDPParser - response IdentityProviderResponse - wantErr bool - wantToken *token.Token - }{ - { - name: "Successful parse", - parser: &mockIDPParser{ - token: testToken, - }, - response: &mockIDPResponse{ - responseType: ResponseTypeRawToken, - rawToken: "test-token", - }, - wantErr: false, - wantToken: testToken, - }, - { - name: "Failed parse", - parser: &mockIDPParser{ - parseError: assert.AnError, - }, - response: &mockIDPResponse{ - responseType: ResponseTypeRawToken, - rawToken: "test-token", - }, - wantErr: true, - wantToken: nil, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - token, err := tt.parser.ParseResponse(tt.response) - if tt.wantErr { - assert.Error(t, err) - assert.Nil(t, token) - } else { - assert.NoError(t, err) - assert.Equal(t, tt.wantToken, token) - } - }) - } -} diff --git a/token/token.go b/token/token.go deleted file mode 100644 index 8e59a44..0000000 --- a/token/token.go +++ /dev/null @@ -1,101 +0,0 @@ -package token - -import ( - "time" - - "github.com/redis/go-redis/v9/auth" -) - -// Ensure Token implements the auth.Credentials interface. -var _ auth.Credentials = (*Token)(nil) - -// New creates a new token with the specified username, password, raw token, expiration time, received at time, and time to live. -// NOTE: The caller is responsible for ensuring the token is valid. -// If the token is invalid, the behavior is undefined. -// - if expiresOn is zero, New returns nil -// - if receivedAt is zero, it will be set to the current time and TTL will be recalculated -// Expiration time and TTL are used to determine when the token should be refreshed. -// TTL is in milliseconds. -// receivedAt + ttl should be within a millisecond of expiresOn -func New(username, password, rawToken string, expiresOn, receivedAt time.Time, ttl int64) *Token { - if expiresOn.IsZero() { - return nil - } - if receivedAt.IsZero() { - receivedAt = time.Now() - ttl = expiresOn.Sub(receivedAt).Milliseconds() - } - - return &Token{ - username: username, - password: password, - rawToken: rawToken, - expiresOn: expiresOn, - receivedAt: receivedAt, - ttl: ttl, - } -} - -// Token represents parsed authentication token used to access the Redis server. -// It implements the auth.Credentials interface. -// -// WARNING: Use New() to create a new token. -// Creating a token with Token{} is invalid and will undefined behavior in the TokenManager. -// The zero value of Token is not valid. -type Token struct { - // username is the username of the user. - username string - // password is the password of the user. - password string - // expiresOn is the expiration time of the token. - expiresOn time.Time - // ttl is the time to live of the token in milliseconds. - ttl int64 - // rawToken is the authentication token. - rawToken string - // receivedAt is the time when the token was received - receivedAt time.Time -} - -// BasicAuth returns the username and password for basic authentication. -func (t *Token) BasicAuth() (string, string) { - return t.username, t.password -} - -// RawCredentials returns the raw credentials for authentication. -func (t *Token) RawCredentials() string { - return t.RawToken() -} - -// RawToken returns the raw token. -func (t *Token) RawToken() string { - return t.rawToken -} - -// ReceivedAt returns the time when the token was received. -func (t *Token) ReceivedAt() time.Time { - return t.receivedAt -} - -// ExpirationOn returns the expiration time of the token. -func (t *Token) ExpirationOn() time.Time { - return t.expiresOn -} - -// TTL returns the time to live of the token. -func (t *Token) TTL() int64 { - return t.ttl -} - -// Copy creates a copy of the token. -func (t *Token) Copy() *Token { - return copyToken(t) -} - -// copyToken creates a copy of the token. -func copyToken(token *Token) *Token { - if token == nil { - return nil - } - return New(token.username, token.password, token.rawToken, token.expiresOn, token.receivedAt, token.ttl) -} diff --git a/token/token_test.go b/token/token_test.go deleted file mode 100644 index 54b1c99..0000000 --- a/token/token_test.go +++ /dev/null @@ -1,171 +0,0 @@ -package token - -import ( - "fmt" - "testing" - "time" - - "github.com/stretchr/testify/assert" -) - -func TestNew(t *testing.T) { - t.Parallel() - expiration := time.Now().Add(1 * time.Hour) - receivedAt := time.Now() - ttl := expiration.UnixMilli() - receivedAt.UnixMilli() - token := New("username", "password", "rawToken", expiration, receivedAt, ttl) - assert.Equal(t, "username", token.username) - assert.Equal(t, "password", token.password) - assert.Equal(t, "rawToken", token.rawToken) - assert.Equal(t, expiration, token.expiresOn) - assert.Equal(t, receivedAt, token.receivedAt) - assert.Equal(t, ttl, token.ttl) -} - -func TestBasicAuth(t *testing.T) { - t.Parallel() - username := "username12" - password := "password32" - rawToken := fmt.Sprintf("%s:%s", username, password) - expiration := time.Now().Add(1 * time.Hour) - receivedAt := time.Now() - ttl := expiration.UnixMilli() - receivedAt.UnixMilli() - token := New(username, password, rawToken, expiration, receivedAt, ttl) - baUsername, baPassword := token.BasicAuth() - assert.Equal(t, username, baUsername) - assert.Equal(t, password, baPassword) -} - -func TestRawCredentials(t *testing.T) { - t.Parallel() - username := "username12" - password := "password32" - rawToken := fmt.Sprintf("%s:%s", username, password) - expiration := time.Now().Add(1 * time.Hour) - receivedAt := time.Now() - ttl := expiration.UnixMilli() - receivedAt.UnixMilli() - token := New(username, password, rawToken, expiration, receivedAt, ttl) - rawCredentials := token.RawCredentials() - assert.Equal(t, rawToken, rawCredentials) - assert.Contains(t, rawCredentials, username) - assert.Contains(t, rawCredentials, password) -} - -func TestExpirationOn(t *testing.T) { - t.Parallel() - username := "username12" - password := "password32" - rawToken := fmt.Sprintf("%s:%s", username, password) - expiration := time.Now().Add(1 * time.Hour) - receivedAt := time.Now() - ttl := expiration.UnixMilli() - receivedAt.UnixMilli() - token := New(username, password, rawToken, expiration, receivedAt, ttl) - expirationOn := token.ExpirationOn() - assert.True(t, expirationOn.After(time.Now())) - assert.Equal(t, expiration, expirationOn) -} - -func TestTokenTTL(t *testing.T) { - t.Parallel() - username := "username12" - password := "password32" - rawToken := fmt.Sprintf("%s:%s", username, password) - expiration := time.Now().Add(1 * time.Hour) - receivedAt := time.Now() - ttl := expiration.UnixMilli() - receivedAt.UnixMilli() - token := New(username, password, rawToken, expiration, receivedAt, ttl) - assert.Equal(t, ttl, token.TTL()) -} - -func TestCopyToken(t *testing.T) { - t.Parallel() - token := New("username", "password", "rawToken", time.Now(), time.Now(), time.Hour.Milliseconds()) - copiedToken := copyToken(token) - - assert.Equal(t, token.username, copiedToken.username) - assert.Equal(t, token.password, copiedToken.password) - assert.Equal(t, token.rawToken, copiedToken.rawToken) - assert.Equal(t, token.ttl, copiedToken.ttl) - assert.Equal(t, token.expiresOn, copiedToken.expiresOn) - assert.Equal(t, token.receivedAt, copiedToken.receivedAt) - - // change the copied token - copiedToken.expiresOn = time.Now().Add(-1 * time.Hour) - assert.NotEqual(t, token.expiresOn, copiedToken.expiresOn) - - // copy nil - nilToken := copyToken(nil) - assert.Nil(t, nilToken) - // copy empty token - emptyToken := copyToken(&Token{}) - assert.Nil(t, emptyToken) - anotherCopy := copiedToken.Copy() - anotherCopy.rawToken = "changed" - assert.NotEqual(t, copiedToken, anotherCopy) - assert.NotEqual(t, copiedToken.rawToken, anotherCopy.rawToken) -} - -func TestTokenReceivedAt(t *testing.T) { - t.Parallel() - // Create a token with a specific receivedAt time - receivedAt := time.Now() - token := New("username", "password", "rawToken", time.Now(), receivedAt, time.Hour.Milliseconds()) - - assert.True(t, token.receivedAt.After(time.Now().Add(-1*time.Hour))) - assert.True(t, token.receivedAt.Before(time.Now().Add(1*time.Hour))) - - // Check if the receivedAt time is set correctly - assert.Equal(t, receivedAt, token.ReceivedAt()) - - tcopiedToken := token.Copy() - // Check if the copied token has the same receivedAt time - assert.Equal(t, receivedAt, tcopiedToken.ReceivedAt()) - // Check if the copied token is not the same instance as the original token - assert.NotSame(t, token, tcopiedToken) - // Check if the copied token is a new instance - assert.NotNil(t, tcopiedToken) - - emptyRecievedAt := New("username", "password", "rawToken", time.Now(), time.Time{}, time.Hour.Milliseconds()) - assert.True(t, emptyRecievedAt.ReceivedAt().After(time.Now().Add(-1*time.Hour))) - assert.True(t, emptyRecievedAt.ReceivedAt().Before(time.Now().Add(1*time.Hour))) -} - -func BenchmarkNew(b *testing.B) { - now := time.Now() - b.ResetTimer() - for i := 0; i < b.N; i++ { - New("username", "password", "rawToken", now, now, time.Hour.Milliseconds()) - } -} - -func BenchmarkBasicAuth(b *testing.B) { - token := New("username", "password", "rawToken", time.Now(), time.Now(), time.Hour.Milliseconds()) - b.ResetTimer() - for i := 0; i < b.N; i++ { - token.BasicAuth() - } -} - -func BenchmarkRawCredentials(b *testing.B) { - token := New("username", "password", "rawToken", time.Now(), time.Now(), time.Hour.Milliseconds()) - b.ResetTimer() - for i := 0; i < b.N; i++ { - token.RawCredentials() - } -} - -func BenchmarkExpirationOn(b *testing.B) { - token := New("username", "password", "rawToken", time.Now().Add(1*time.Hour), time.Now(), time.Hour.Milliseconds()) - b.ResetTimer() - for i := 0; i < b.N; i++ { - token.ExpirationOn() - } -} - -func BenchmarkCopyToken(b *testing.B) { - token := New("username", "password", "rawToken", time.Now(), time.Now(), time.Hour.Milliseconds()) - b.ResetTimer() - for i := 0; i < b.N; i++ { - token.Copy() - } -} diff --git a/token_listener.go b/token_listener.go deleted file mode 100644 index 171aadb..0000000 --- a/token_listener.go +++ /dev/null @@ -1,36 +0,0 @@ -package entraid - -import ( - "github.com/redis/go-redis-entraid/manager" - "github.com/redis/go-redis-entraid/token" -) - -// entraidTokenListener implements the TokenListener interface for the entraidCredentialsProvider. -// It listens for token updates and errors from the token manager and notifies the credentials provider. -type entraidTokenListener struct { - cp *entraidCredentialsProvider -} - -// tokenListenerFromCP creates a new entraidTokenListener from the given entraidCredentialsProvider. -// It is used to listen for token updates and errors from the token manager. -// This function is typically called when starting the token manager. -// It returns a pointer to the entraidTokenListener instance that is created from the credentials provider. -func tokenListenerFromCP(cp *entraidCredentialsProvider) manager.TokenListener { - return &entraidTokenListener{ - cp, - } -} - -// OnTokenNext is called when the token manager receives a new token. -// It notifies the credentials provider with the new token. -// This function is typically called when the token manager successfully retrieves a token. -func (l *entraidTokenListener) OnNext(t *token.Token) { - l.cp.onTokenNext(t) -} - -// OnTokenError is called when the token manager encounters an error. -// It notifies the credentials provider with the error. -// This function is typically called when the token manager fails to retrieve a token. -func (l *entraidTokenListener) OnError(err error) { - l.cp.onTokenError(err) -} diff --git a/token_listener_test.go b/token_listener_test.go deleted file mode 100644 index 47e6961..0000000 --- a/token_listener_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package entraid - -import ( - "errors" - "testing" - "time" - - "github.com/redis/go-redis-entraid/token" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestTokenListenerFromCP(t *testing.T) { - cp := &entraidCredentialsProvider{} - listener := tokenListenerFromCP(cp) - - require.NotNil(t, listener) - _, ok := listener.(*entraidTokenListener) - assert.True(t, ok, "listener should be of type entraidTokenListener") -} - -func TestOnTokenNext(t *testing.T) { - cp := &entraidCredentialsProvider{} - listener := tokenListenerFromCP(cp) - - now := time.Now() - testToken := token.New("test-user", "test-pass", "test-token", now.Add(time.Hour), now, time.Hour.Milliseconds()) - - listener.OnNext(testToken) - - // Since we can't directly access the internal state of entraidCredentialsProvider, - // we'll verify that the listener was created and the call didn't panic - assert.NotNil(t, listener) -} - -func TestOnTokenError(t *testing.T) { - cp := &entraidCredentialsProvider{} - listener := tokenListenerFromCP(cp) - - testError := errors.New("test error") - listener.OnError(testError) - - // Since we can't directly access the internal state of entraidCredentialsProvider, - // we'll verify that the listener was created and the call didn't panic - assert.NotNil(t, listener) -}