mirror of
https://github.com/apple/swift-nio.git
synced 2026-05-20 20:30:36 +00:00
* Apply formatting
* Apply no block comments rule
* Apply OmitExplicitReturns
* Apple OnlyOneTrailingClosureArgument
* Apply NoAssignmentInExpressions
* Fix up DontRepeatTypeInStaticProperties lint errors
* Apply `OrderedImports`
* Apply `ReplaceForEachWithForLoop`
* format file
* Enable the formatting pipeline
* Adopt `AmbiguousTrailingClosureOverload`
* Fix license header
* Fix format check
* Fix `EndOfLineComment`
* Fix CI
* Adapt CI script to check if changes when running formatting
* Separate lint and format into to steps
* Fix format
* Adopt `UseEarlyExits`
* Revert "Adopt `UseEarlyExits`"
This reverts commit d1ac5bbe12.
143 lines
4.5 KiB
Swift
143 lines
4.5 KiB
Swift
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This source file is part of the SwiftNIO open source project
|
|
//
|
|
// Copyright (c) 2022 Apple Inc. and the SwiftNIO project authors
|
|
// Licensed under Apache License v2.0
|
|
//
|
|
// See LICENSE.txt for license information
|
|
// See CONTRIBUTORS.txt for the list of SwiftNIO project authors
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
import Foundation
|
|
import NIOCore
|
|
import NIOFoundationCompat
|
|
import XCTest
|
|
|
|
final class ByteBufferUUIDTests: XCTestCase {
|
|
func testSetUUIDBytes() {
|
|
let uuid = UUID(
|
|
uuid: (
|
|
0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7,
|
|
0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf
|
|
)
|
|
)
|
|
var buffer = ByteBuffer()
|
|
|
|
XCTAssertEqual(buffer.storageCapacity, 0)
|
|
XCTAssertEqual(buffer.setUUIDBytes(uuid, at: 0), 16)
|
|
XCTAssertEqual(buffer.writerIndex, 0)
|
|
XCTAssertEqual(buffer.readableBytes, 0)
|
|
XCTAssertGreaterThanOrEqual(buffer.storageCapacity, 16)
|
|
|
|
buffer.moveWriterIndex(forwardBy: 16)
|
|
let bytes = buffer.getBytes(at: buffer.readerIndex, length: 16)
|
|
XCTAssertEqual(bytes, Array(0..<16))
|
|
}
|
|
|
|
func testSetUUIDBytesBlatsExistingBytes() {
|
|
var buffer = ByteBuffer()
|
|
buffer.writeRepeatingByte(.max, count: 32)
|
|
|
|
let uuid = UUID(
|
|
uuid: (
|
|
0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7,
|
|
0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf
|
|
)
|
|
)
|
|
buffer.setUUIDBytes(uuid, at: buffer.readerIndex + 4)
|
|
|
|
XCTAssertEqual(buffer.readBytes(length: 4), Array(repeating: .max, count: 4))
|
|
XCTAssertEqual(buffer.readBytes(length: 16), Array(0..<16))
|
|
XCTAssertEqual(buffer.readBytes(length: 12), Array(repeating: .max, count: 12))
|
|
XCTAssertEqual(buffer.readableBytes, 0)
|
|
}
|
|
|
|
func testGetUUIDEmptyBuffer() {
|
|
let buffer = ByteBuffer()
|
|
XCTAssertNil(buffer.getUUIDBytes(at: 0))
|
|
}
|
|
|
|
func testGetUUIDAfterSet() {
|
|
let uuid = UUID()
|
|
var buffer = ByteBuffer()
|
|
XCTAssertEqual(buffer.setUUIDBytes(uuid, at: 0), 16)
|
|
// nil because there are no bytes to read
|
|
XCTAssertNil(buffer.getUUIDBytes(at: 0))
|
|
}
|
|
|
|
func testWriteUUIDBytesIntoEmptyBuffer() {
|
|
let uuid = UUID(
|
|
uuid: (
|
|
0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7,
|
|
0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf
|
|
)
|
|
)
|
|
var buffer = ByteBuffer()
|
|
|
|
XCTAssertEqual(buffer.writeUUIDBytes(uuid), 16)
|
|
XCTAssertEqual(
|
|
buffer.readableBytesView,
|
|
[
|
|
0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7,
|
|
0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf,
|
|
]
|
|
)
|
|
XCTAssertEqual(buffer.readableBytes, 16)
|
|
XCTAssertEqual(buffer.writerIndex, 16)
|
|
}
|
|
|
|
func testWriteUUIDBytesIntoNonEmptyBuffer() {
|
|
let uuid = UUID(
|
|
uuid: (
|
|
0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7,
|
|
0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf
|
|
)
|
|
)
|
|
|
|
var buffer = ByteBuffer()
|
|
buffer.writeRepeatingByte(42, count: 10)
|
|
XCTAssertEqual(buffer.writeUUIDBytes(uuid), 16)
|
|
XCTAssertEqual(buffer.readableBytes, 26)
|
|
XCTAssertEqual(buffer.writerIndex, 26)
|
|
|
|
XCTAssertEqual(
|
|
buffer.readableBytesView.dropFirst(10),
|
|
[0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf]
|
|
)
|
|
}
|
|
|
|
func testReadUUID() {
|
|
let uuid = UUID(
|
|
uuid: (
|
|
0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7,
|
|
0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf
|
|
)
|
|
)
|
|
var buffer = ByteBuffer()
|
|
XCTAssertEqual(buffer.writeUUIDBytes(uuid), 16)
|
|
XCTAssertEqual(buffer.readUUIDBytes(), uuid)
|
|
XCTAssertEqual(buffer.readableBytes, 0)
|
|
}
|
|
|
|
func testReadUUIDNotEnoughBytes() {
|
|
var buffer = ByteBuffer()
|
|
XCTAssertNil(buffer.readUUIDBytes())
|
|
XCTAssertEqual(buffer.readerIndex, 0)
|
|
|
|
buffer.writeRepeatingByte(0, count: 8)
|
|
XCTAssertNil(buffer.readUUIDBytes())
|
|
XCTAssertEqual(buffer.readerIndex, 0)
|
|
|
|
buffer.writeRepeatingByte(0, count: 8)
|
|
XCTAssertEqual(
|
|
buffer.readUUIDBytes(),
|
|
UUID(uuid: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))
|
|
)
|
|
XCTAssertEqual(buffer.readerIndex, 16)
|
|
}
|
|
}
|