xref: /cloud-hypervisor/src/test_util.rs (revision 53e9c94e685bedbd1337c145bf4821385d7fe38c)
1 // Copyright © 2025 Cyberus Technology GmbH
2 //
3 // SPDX-License-Identifier: Apache-2.0
4 //
5 
6 //! Test utilities.
7 
8 use std::cmp::Ordering;
9 
10 use clap::Arg;
11 
12 /// Ensures that all [`Arg`]s are sorted alphabetically.
assert_args_sorted<'a, F: Fn() -> R, R: Iterator<Item = &'a Arg>>(get_base_iter: F)13 pub fn assert_args_sorted<'a, F: Fn() -> R, R: Iterator<Item = &'a Arg>>(get_base_iter: F) {
14     let iter = get_base_iter().zip(get_base_iter().skip(1));
15     for (arg, next) in iter {
16         assert_ne!(
17             arg.get_id().cmp(next.get_id()),
18             Ordering::Greater,
19             "args not alphabetically sorted: arg={}, next={}",
20             arg.get_id(),
21             next.get_id()
22         );
23     }
24 }
25