You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: execution.rs
    path of file: ./repos/turbo/crates/turborepo-lib/src/run/summary
    
    the code of the file until where you have to start completion: use std::fmt;

use chrono::{DateTime, Local};
use serde::Serialize;
use tokio::sync::mpsc;
use turbopath::{AbsoluteSystemPathBuf, AnchoredSystemPath};
use turborepo_ui::{color, cprintln, BOLD, BOLD_GREEN, BOLD_RED, MAGENTA, UI, YELLOW};

use super::TurboDuration;
use crate::
    
    async fn test_timing() {
        let summary = ExecutionTracker::new();
        let tracker = summary.task_tracker(TaskId::new("foo", "build"));
        let post_construction_time = Local::now().timestamp_millis();
        let sleep_duration = Duration::milliseconds(5);
        tokio::time::sleep(sleep_duration.to_std().unwrap()).await;

        let tracker = tracker.start().await;

        tokio::time::sleep(sleep_duration.to_std().unwrap()).await;
        tracker.build_succeeded(0).await;
        let mut state = summary.finish().await.unwrap();
        assert_eq!(state.tasks.len(), 1);
        let summary = state.tasks.pop().unwrap().execution.unwrap();
        assert!(
            post_construction_time < summary.start_time,
            "tracker start time should start when start is called"
        );
        assert!(
            summary.start_time + sleep_duration.num_milliseconds() <= summary.end_time,
            "tracker end should be at least as long as the time between calls"
        );
    }