Files
7c676d20c3 [MM-67978] Add open file descriptor count to support packet diagnostics (#35834)
* MM-67978: Add open file descriptor count to support packet diagnostics

Add OpenFileDescriptors and MaxFileDescriptors fields to
SupportPacketDiagnostics.Server. On Linux the open count is read from
/proc/self/fd; on macOS from /dev/fd. Both platforms use
syscall.Getrlimit(RLIMIT_NOFILE) for the soft limit. Unsupported
platforms (e.g. Windows) return -1 for both fields.

* MM-67978: Move OpenFileDescriptors/MaxFileDescriptors after TotalMemoryMB

* fix: guard int64 overflow in getMaxFileDescriptors and update tests for unsupported platforms

Add overflow check before casting rlimit.Cur (uint64) to int64 in
getMaxFileDescriptors on Linux. Update fd_test.go and
support_packet_test.go assertions to accept -1 as a valid sentinel for
unsupported platforms instead of requiring a strictly positive value.

* revert: remove unrelated test refactoring from support_packet_test.go

Restore the three unrelated changes that crept into this branch:
- SetLogRootPathOverride instead of t.Setenv("MM_LOG_PATH", ...)
- installTypeOverride field instead of t.Setenv(envVarInstallType, ...)
- Restore explanatory comment in TestGetSanitizedConfigFile

---------

Co-authored-by: Hanzo Dev <[email protected]>
2026-04-21 09:54:32 +00:00

28 lines
692 B
Go

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
package platform
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestGetOpenFileDescriptors(t *testing.T) {
count, err := getOpenFileDescriptors()
require.NoError(t, err)
if count == -1 {
return
}
assert.Positive(t, count)
}
func TestGetMaxFileDescriptors(t *testing.T) {
maxFDs, err := getMaxFileDescriptors()
require.NoError(t, err)
// -1 means unsupported platform; otherwise should be positive
assert.True(t, maxFDs == -1 || maxFDs > 0, "maxFDs should be -1 (unsupported) or positive, got %d", maxFDs)
}