File: basics.rs

package info (click to toggle)
rust-sequoia-git 0.4.0-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,580 kB
  • sloc: sh: 367; makefile: 32
file content (126 lines) | stat: -rw-r--r-- 2,854 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
use std::fs;
mod common;
use common::Environment;

#[test]
fn create_environment() -> anyhow::Result<()> {
    let e = Environment::new()?;
    assert!(e.gnupg_state().exists());
    assert!(e.git_state().exists());
    Ok(())
}

#[test]
fn make_commit() -> anyhow::Result<()> {
    let e = Environment::new()?;
    let p = e.git_state();
    fs::write(p.join("a"), "Aller Anfang ist schwer.")?;
    e.git(&["add", "a"])?;
    e.git(&[
        "commit",
        "-m", "Initial commit.",
    ])?;
    Ok(())
}

#[test]
fn sign_commit() -> anyhow::Result<()> {
    let e = Environment::new()?;
    let p = e.git_state();
    fs::write(p.join("a"), "Aller Anfang ist schwer.")?;
    e.git(&["add", "a"])?;
    e.git(&[
        "commit",
        "-m", "Initial commit.",
        &format!("-S{}", e.willow.fingerprint),
    ])?;
    Ok(())
}

#[test]
fn verify_commit() -> anyhow::Result<()> {
    let e = Environment::new()?;
    let p = e.git_state();
    e.sq_git(&[
        "policy",
        "authorize",
        e.willow.petname,
        &e.willow.fingerprint.to_string(),
        "--sign-commit"
    ])?;
    e.git(&["add", "openpgp-policy.toml"])?;
    e.git(&[
        "commit",
        "-m", "Initial commit.",
        &format!("-S{}", e.willow.fingerprint),
    ])?;
    let root = e.git_current_commit()?;

    fs::write(p.join("a"), "Aller Anfang ist schwer.")?;
    e.git(&["add", "a"])?;
    e.git(&[
        "commit",
        "-m", "First change.",
        &format!("-S{}", e.willow.fingerprint),
    ])?;

    e.sq_git(&["log", "--trust-root", &root])?;

    fs::write(p.join("a"), "Und es bleibt schwer.")?;
    e.git(&["add", "a"])?;
    e.git(&[
        "commit",
        "-m", "Second change.",
        &format!("-S{}", e.willow.fingerprint),
    ])?;

    e.sq_git(&["log", "--trust-root", &root])?;

    Ok(())
}

#[test]
fn shadow_verify_commit() -> anyhow::Result<()> {
    let e = Environment::new()?;
    let p = e.git_state();

    e.sq_git(&[
        "policy",
        "authorize",
        "--policy-file", "shadow-policy.toml",
        e.willow.petname,
        &e.willow.fingerprint.to_string(),
        "--sign-commit"
    ])?;

    fs::write(p.join("a"), "Aller Anfang ist schwer.")?;
    e.git(&["add", "a"])?;
    e.git(&[
        "commit",
        "-m", "Initial commit.",
        &format!("-S{}", e.willow.fingerprint),
    ])?;
    let root = e.git_current_commit()?;

    e.sq_git(&[
        "log",
        "--trust-root", &root,
        "--policy-file", "shadow-policy.toml",
    ])?;

    fs::write(p.join("a"), "Und es bleibt schwer.")?;
    e.git(&["add", "a"])?;
    e.git(&[
        "commit",
        "-m", "Second change.",
        &format!("-S{}", e.willow.fingerprint),
    ])?;

    e.sq_git(&[
        "log",
        "--trust-root", &root,
        "--policy-file", "shadow-policy.toml",
    ])?;

    Ok(())
}