mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-09 20:11:09 +00:00
Add a feature to create automatically a random temporary directory for base path & remove Clone (#6221)
* Initial commit Forked at:4adac40c07Parent branch: origin/master * Add a feature to create automatically a temporary directory for base path * doc fix and todos * use parking_lot instead * use refcell instead since we stay in the main thread * remove Clone derives * add test * solving dependency issue * clarifying doc * conflict argument with base-path * WIP Forked at:4adac40c07Parent branch: origin/master * revert dep deletion * fixing test and making base_path optional * hold basepath while the service is running * fixes * Update client/cli/src/params/shared_params.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/service/Cargo.toml Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/cli/src/commands/mod.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/service/src/config.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * WIP Forked at:4adac40c07Parent branch: origin/master * improve doc Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
This commit is contained in:
@@ -20,7 +20,7 @@ use sc_cli::RunCmd;
|
||||
use structopt::StructOpt;
|
||||
|
||||
/// An overarching CLI command definition.
|
||||
#[derive(Clone, Debug, StructOpt)]
|
||||
#[derive(Debug, StructOpt)]
|
||||
pub struct Cli {
|
||||
/// Possible subcommand with parameters.
|
||||
#[structopt(subcommand)]
|
||||
@@ -31,7 +31,7 @@ pub struct Cli {
|
||||
}
|
||||
|
||||
/// Possible subcommands of the main binary.
|
||||
#[derive(Clone, Debug, StructOpt)]
|
||||
#[derive(Debug, StructOpt)]
|
||||
pub enum Subcommand {
|
||||
/// A set of base subcommands handled by `sc_cli`.
|
||||
#[structopt(flatten)]
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
// This file is part of Substrate.
|
||||
|
||||
// Copyright (C) 2020 Parity Technologies (UK) Ltd.
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0
|
||||
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
#![cfg(unix)]
|
||||
|
||||
use assert_cmd::cargo::cargo_bin;
|
||||
use nix::sys::signal::{kill, Signal::SIGINT};
|
||||
use nix::unistd::Pid;
|
||||
use regex::Regex;
|
||||
use std::convert::TryInto;
|
||||
use std::io::Read;
|
||||
use std::path::PathBuf;
|
||||
use std::process::{Command, Stdio};
|
||||
use std::thread;
|
||||
use std::time::Duration;
|
||||
|
||||
pub mod common;
|
||||
|
||||
#[test]
|
||||
fn temp_base_path_works() {
|
||||
let mut cmd = Command::new(cargo_bin("substrate"));
|
||||
|
||||
let mut cmd = cmd
|
||||
.args(&["--dev", "--tmp"])
|
||||
.stdout(Stdio::piped())
|
||||
.stderr(Stdio::piped())
|
||||
.spawn()
|
||||
.unwrap();
|
||||
|
||||
// Let it produce some blocks.
|
||||
thread::sleep(Duration::from_secs(30));
|
||||
assert!(
|
||||
cmd.try_wait().unwrap().is_none(),
|
||||
"the process should still be running"
|
||||
);
|
||||
|
||||
// Stop the process
|
||||
kill(Pid::from_raw(cmd.id().try_into().unwrap()), SIGINT).unwrap();
|
||||
assert!(common::wait_for(&mut cmd, 40)
|
||||
.map(|x| x.success())
|
||||
.unwrap_or_default());
|
||||
|
||||
// Ensure the database has been deleted
|
||||
let mut stderr = String::new();
|
||||
cmd.stderr.unwrap().read_to_string(&mut stderr).unwrap();
|
||||
let re = Regex::new(r"Database: .+ at (\S+)").unwrap();
|
||||
let db_path = PathBuf::from(
|
||||
re.captures(stderr.as_str())
|
||||
.unwrap()
|
||||
.get(1)
|
||||
.unwrap()
|
||||
.as_str()
|
||||
.to_string(),
|
||||
);
|
||||
|
||||
assert!(!db_path.exists());
|
||||
}
|
||||
@@ -23,7 +23,7 @@ use sc_cli::{ImportParams, SharedParams};
|
||||
use structopt::StructOpt;
|
||||
|
||||
/// The `inspect` command used to print decoded chain data.
|
||||
#[derive(Debug, StructOpt, Clone)]
|
||||
#[derive(Debug, StructOpt)]
|
||||
pub struct InspectCmd {
|
||||
#[allow(missing_docs)]
|
||||
#[structopt(flatten)]
|
||||
@@ -39,7 +39,7 @@ pub struct InspectCmd {
|
||||
}
|
||||
|
||||
/// A possible inspect sub-commands.
|
||||
#[derive(Debug, StructOpt, Clone)]
|
||||
#[derive(Debug, StructOpt)]
|
||||
pub enum InspectSubCmd {
|
||||
/// Decode block with native version of runtime and print out the details.
|
||||
Block {
|
||||
|
||||
Reference in New Issue
Block a user