rust/src/compiletest
Aaron Turon bfa853f8ed io::process::Command: add fine-grained env builder
This commit changes the `io::process::Command` API to provide
fine-grained control over the environment:

* The `env` method now inserts/updates a key/value pair.
* The `env_remove` method removes a key from the environment.
* The old `env` method, which sets the entire environment in one shot,
  is renamed to `env_set_all`. It can be used in conjunction with the
  finer-grained methods. This renaming is a breaking change.

To support these new methods, the internal `env` representation for
`Command` has been changed to an optional `HashMap` holding owned
`CString`s (to support non-utf8 data). The `HashMap` is only
materialized if the environment is updated. The implementation does not
try hard to avoid allocation, since the cost of launching a process will
dwarf any allocation cost.

This patch also adds `PartialOrd`, `Eq`, and `Hash` implementations for
`CString`.

[breaking-change]
2014-07-10 12:16:16 -07:00
..
common.rs std: Rename {Eq,Ord} to Partial{Eq,Ord} 2014-05-30 15:52:24 -07:00
compiletest.rs std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
errors.rs std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
header.rs compiletest: Remove superfluous to_string calls 2014-06-25 07:35:54 +02:00
procsrv.rs io::process::Command: add fine-grained env builder 2014-07-10 12:16:16 -07:00
runtest.rs io::process::Command: add fine-grained env builder 2014-07-10 12:16:16 -07:00
util.rs std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00