libcgroup 0.3.0

libcgroup bindings
Documentation
extern crate libcgroup;
use libcgroup::*;

#[test]
#[cfg(feature = "sudo")]
fn test_manipulate_cgroup() {
    let cg = match CGroup::new("/rust-cgroup-test") {
        Ok(cgroup) => cgroup,
        Err(err) => panic!("Should not have returned error: {}", err.description),
    };

    let ctrlr = match cg.add_controller("memory") {
        Ok(c) => c,
        Err(err) => panic!("{}", err.description),
    };

    match ctrlr.add_value_uint64("memory.limit_in_bytes", 409666u64) {
        Ok(c) => c,
        Err(err) => println!("{}", err.description),
    };

    match cg.create() {
        Ok(m) => m,
        Err(err) => panic!("{}", err.description),
    };

    let lim = match ctrlr.get_value_uint64("memory.limit_in_bytes") {
        Ok(m) => m,
        Err(err) => panic!("{}", err.description),
    };
    println!("{}", lim);
    assert!(lim == 409666u64);

    match cg.delete() {
        Ok(c) => c,
        Err(err) => panic!("{}", err.description),
    };
}

#[test]
fn test_get_values() {
    let cg = match CGroup::new("/") {
        Ok(cgroup) => cgroup,
        Err(err) => panic!("Should not have returned error: {}", err.description),
    };
    match cg.get() {
        Ok(_) => (),
        Err(err) => panic!("Should not have returned error: {}", err.description),
    };

    let ctrlr = match cg.get_controller("memory") {
        Ok(c) => c,
        Err(err) => panic!("{}", err.description),
    };

    let lim = match ctrlr.get_value_int64("memory.limit_in_bytes") {
        Ok(m) => m,
        Err(err) => panic!("{}", err.description),
    };
    assert!(lim > 0);
    let ulim = match ctrlr.get_value_uint64("memory.limit_in_bytes") {
        Ok(m) => m,
        Err(err) => panic!("{}", err.description),
    };
    assert!(ulim > 0);
    let h = match ctrlr.get_value_bool("memory.use_hierarchy") {
        Ok(m) => m,
        Err(err) => panic!("{}", err.description),
    };
    assert!(h);
    let slim = match ctrlr.get_value_string("memory.limit_in_bytes") {
        Ok(m) => m,
        Err(err) => panic!("{}", err.description),
    };
    assert!(slim.len() > 0);
}

#[test]
fn iterate_cgroup_mount_points() {
    let mut found = false;
    for c in cgroup_mount_points_iter() {
        found = match c {
            Ok(_) => true,
            Err(err) => panic!("{}", err.description),
        }
    }
    assert!(found);
}

#[test]
fn test_cgroup_mount_points() {
    let v = match cgroup_mount_points() {
        Ok(mps) => mps,
        Err(err) => panic!("{}", err.description),
    };
    assert!(v.len() > 0);
}

#[test]
fn iterate_cgroup_tree() {
    let mut found = false;
    for c in cgroup_walk_tree_iter("memory") {
        found = match c {
            Ok(fi) => {
                println!("{:?}", fi);
                true
            }
            Err(err) => panic!("{}", err.description),
        }
    }
    assert!(found);
}