1*bb4ee6a4SAndroid Build Coastguard Worker // Copyright 2023 The ChromiumOS Authors 2*bb4ee6a4SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*bb4ee6a4SAndroid Build Coastguard Worker // found in the LICENSE file. 4*bb4ee6a4SAndroid Build Coastguard Worker 5*bb4ee6a4SAndroid Build Coastguard Worker use std::time::Duration; 6*bb4ee6a4SAndroid Build Coastguard Worker 7*bb4ee6a4SAndroid Build Coastguard Worker use fixture::vm::Config; 8*bb4ee6a4SAndroid Build Coastguard Worker use fixture::vm::TestVm; 9*bb4ee6a4SAndroid Build Coastguard Worker 10*bb4ee6a4SAndroid Build Coastguard Worker #[test] psql() -> anyhow::Result<()>11*bb4ee6a4SAndroid Build Coastguard Workerfn psql() -> anyhow::Result<()> { 12*bb4ee6a4SAndroid Build Coastguard Worker let cfg = Config::from_env() 13*bb4ee6a4SAndroid Build Coastguard Worker .with_kernel("https://storage.googleapis.com/crosvm/integration_tests/guest-bzimage-x86_64-r0009") 14*bb4ee6a4SAndroid Build Coastguard Worker .with_initrd("https://storage.googleapis.com/crosvm/integration_tests/benchmarks/custom-initramfs.cpio.gz-r0005") 15*bb4ee6a4SAndroid Build Coastguard Worker // Created by e2e_tests/guest_under_test/rootfs_benches/postgres.sh 16*bb4ee6a4SAndroid Build Coastguard Worker .with_rootfs("https://storage.googleapis.com/crosvm/integration_tests/benchmarks/postgres-rootfs.img.zst-r0001").rootfs_is_rw().rootfs_is_compressed() 17*bb4ee6a4SAndroid Build Coastguard Worker .with_stdout_hardware("serial").extra_args(vec!["--mem".to_owned(), "512".to_owned()]); 18*bb4ee6a4SAndroid Build Coastguard Worker let mut vm = TestVm::new(cfg).unwrap(); 19*bb4ee6a4SAndroid Build Coastguard Worker assert_eq!( 20*bb4ee6a4SAndroid Build Coastguard Worker vm.exec_in_guest_async("echo 42")? 21*bb4ee6a4SAndroid Build Coastguard Worker .with_timeout(Duration::from_secs(500)) 22*bb4ee6a4SAndroid Build Coastguard Worker .wait_ok(&mut vm)? 23*bb4ee6a4SAndroid Build Coastguard Worker .stdout 24*bb4ee6a4SAndroid Build Coastguard Worker .trim(), 25*bb4ee6a4SAndroid Build Coastguard Worker "42" 26*bb4ee6a4SAndroid Build Coastguard Worker ); 27*bb4ee6a4SAndroid Build Coastguard Worker vm.exec_in_guest("cd /root")?; 28*bb4ee6a4SAndroid Build Coastguard Worker vm.exec_in_guest("PATH=$PATH:/usr/lib/postgresql/15/bin PGDATA=/var/lib/postgresql/data POSTGRES_PASSWORD=mysecretpassword nohup /usr/local/bin/docker-entrypoint.sh postgres > /dev/null 2>&1 </dev/null &")?; 29*bb4ee6a4SAndroid Build Coastguard Worker vm.exec_in_guest("sleep 5")?; 30*bb4ee6a4SAndroid Build Coastguard Worker vm.exec_in_guest("pgbench -U postgres -i -s 10 postgres")?; 31*bb4ee6a4SAndroid Build Coastguard Worker vm.exec_in_guest("pgbench -U postgres -c 1 -j 1 -t 1000 postgres 1>&2")?; 32*bb4ee6a4SAndroid Build Coastguard Worker Ok(()) 33*bb4ee6a4SAndroid Build Coastguard Worker } 34