00f7d06151
This change does two things: - add the serial_test crate to run selected tests serial rather than in parallel. This is done because they use global state so running them in parallel leads to race conditions and flaky results (sometimes they pass, sometimes they fail). Running them serialy avoids this flakiness. - create a screen buffer within the test. This avoids changing the terminal (screen buffer) which is running the test. for example, a test that changes the terminal size to 20 x 20 can leave the developer running the test with a resized terminal. Creating a separate screen buffer for the test avoids this.
111 lines
2.9 KiB
TOML
111 lines
2.9 KiB
TOML
[package]
|
|
name = "crossterm"
|
|
version = "0.26.1"
|
|
authors = ["T. Post"]
|
|
description = "A crossplatform terminal library for manipulating terminals."
|
|
repository = "https://github.com/crossterm-rs/crossterm"
|
|
documentation = "https://docs.rs/crossterm/"
|
|
license = "MIT"
|
|
keywords = ["event", "color", "cli", "input", "terminal"]
|
|
exclude = ["target", "Cargo.lock"]
|
|
readme = "README.md"
|
|
edition = "2021"
|
|
rust-version = "1.58.0"
|
|
categories = ["command-line-interface", "command-line-utilities"]
|
|
|
|
[lib]
|
|
name = "crossterm"
|
|
path = "src/lib.rs"
|
|
|
|
#
|
|
# Build documentation with all features -> EventStream is available
|
|
#
|
|
[package.metadata.docs.rs]
|
|
all-features = true
|
|
|
|
#
|
|
# Features
|
|
#
|
|
[features]
|
|
default = ["bracketed-paste", "windows", "events"]
|
|
windows = ["dep:winapi", "dep:crossterm_winapi"] # Disables winapi dependencies from being included into the binary (SHOULD NOT be disabled on windows).
|
|
bracketed-paste = [] # Enables triggering a `Event::Paste` when pasting text into the terminal.
|
|
event-stream = ["dep:futures-core", "events"] # Enables async events
|
|
use-dev-tty = ["filedescriptor"] # Enables raw file descriptor polling / selecting instead of mio.
|
|
events = ["dep:mio", "dep:signal-hook", "dep:signal-hook-mio"] # Enables reading input/events from the system.
|
|
serde = ["dep:serde", "bitflags/serde"] # Enables 'serde' for various types.
|
|
|
|
#
|
|
# Shared dependencies
|
|
#
|
|
[dependencies]
|
|
bitflags = {version = "2.1" }
|
|
parking_lot = "0.12"
|
|
|
|
# optional deps only added when requested
|
|
futures-core = { version = "0.3", optional = true, default-features = false }
|
|
serde = { version = "1.0", features = ["derive"], optional = true }
|
|
|
|
#
|
|
# Windows dependencies
|
|
#
|
|
[target.'cfg(windows)'.dependencies.winapi]
|
|
version = "0.3.9"
|
|
features = ["winuser", "winerror"]
|
|
optional = true
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
crossterm_winapi = { version = "0.9", optional = true }
|
|
|
|
#
|
|
# UNIX dependencies
|
|
#
|
|
[target.'cfg(unix)'.dependencies]
|
|
libc = "0.2"
|
|
signal-hook = { version = "0.3.13", optional = true }
|
|
filedescriptor = { version = "0.8", optional = true }
|
|
mio = { version = "0.8", features = ["os-poll"], optional = true }
|
|
signal-hook-mio = { version = "0.2.3", features = ["support-v0_8"], optional = true }
|
|
|
|
#
|
|
# Dev dependencies (examples, ...)
|
|
#
|
|
[dev-dependencies]
|
|
tokio = { version = "1.25", features = ["full"] }
|
|
futures = "0.3"
|
|
futures-timer = "3.0"
|
|
async-std = "1.12"
|
|
serde_json = "1.0"
|
|
serial_test = "2.0.0"
|
|
|
|
#
|
|
# Examples
|
|
#
|
|
[[example]]
|
|
name = "event-read"
|
|
required-features = ["bracketed-paste", "events"]
|
|
|
|
[[example]]
|
|
name = "event-match-modifiers"
|
|
required-features = ["bracketed-paste", "events"]
|
|
|
|
[[example]]
|
|
name = "event-poll-read"
|
|
required-features = ["bracketed-paste", "events"]
|
|
|
|
[[example]]
|
|
name = "event-stream-async-std"
|
|
required-features = ["event-stream", "events"]
|
|
|
|
[[example]]
|
|
name = "event-stream-tokio"
|
|
required-features = ["event-stream", "events"]
|
|
|
|
[[example]]
|
|
name = "event-read-char-line"
|
|
required-features = ["events"]
|
|
|
|
[[example]]
|
|
name = "stderr"
|
|
required-features = ["events"]
|