Ini adalah perintah ggcov-run yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
ggcov-run - jalankan program pengujian berinstrumen
RINGKASAN
menjalankan ggcov [Pilihan] [--] program argumen...
DESKRIPSI
Ggcov-lari dapat digunakan untuk menjalankan program pengujian, diinstrumentasi menggunakan gcc --cakupan saat dibangun,
dalam kondisi tertentu. Penggunaannya sepenuhnya opsional, sebagai perilaku default dari
instrumentasi gcc dirancang untuk berguna dalam sebagian besar kondisi.
Ggcov-lari mengambil sebagai argumen sebuah program dan argumennya, dan menjalankan program dengan beberapa
modifikasi perilaku (dengan cara jejak). Jika tidak diberikan pilihan, programnya adalah
berjalan tanpa modifikasi apapun.
GCDA FILE LOKASI
Satu masalah dengan perilaku default dari instrumentasi gcc melibatkan lokasi
dari data cakupan. Program pengujian berinstrumen akan membaca, memodifikasi, dan menulis ulang .gcda arsip
saat program keluar. Lokasi file-file itu dipilih oleh kompiler di
waktu kompilasi; file akan ditempatkan di direktori build di sebelah yang sesuai .c
mengajukan. Kompiler menyimpan informasi ini di .o mengajukan. Misalnya, jika Anda mengkompilasi
file foo.c di direktori /home/saya/perangkat lunak/quux, lalu nama path
/home/me/software/quux/foo.gcda hardcoded dalam program pengujian. Tentu saja, program
yang memeriksa data cakupan, seperti ggcov, cari .gcda file di sana.
Untuk banyak aplikasi pengujian, ini berfungsi dengan baik. Masalah muncul namun ketika
program berinstrumen perlu dijalankan di komputer lain, atau sebagai userid lain, atau
direktori build tidak stabil, atau dalam skenario pengujian lain di mana direktori build
tidak ada atau tidak dapat ditulis oleh program pengujian yang sedang berjalan. Dalam kasus ini, Anda
perlu melakukan beberapa pemindahan file ad-hoc sebelum dan sesudah pengujian untuk mendapatkan .gcda
file di lokasi yang tepat di mesin yang tepat dengan izin yang tepat.
Pendekatan yang lebih baik adalah menggunakan menjalankan ggcov pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. --gcda-awalan pilihan. Opsi ini mengambil sebagai
nilai direktori yang ditambahkan ke nama path masing-masing .gcda mengajukan program pengujian
mengakses. Jadi, melanjutkan contoh di atas, menjalankan program pengujian seperti ini:
saya$ ggcov-run --gcda-prefix=/tmp/gcda ./testprogram test-args...
akan menghasilkan .gcda file sedang ditulis ke /tmp/gcda/home/me/software/quux/foo.gcda.
Pohon direktori akan secara otomatis dibuat sebagai .gcda file ditulis, dan
izin file dan direktori akan memungkinkan akses baca untuk semua pengguna.
Perhatikan bahwa ggcov juga memiliki --gcda-awalan opsi yang dapat digunakan untuk mencari .gcda
file di lokasi selain direktori build. Dalam contoh kami:
saya$ cd /home/saya/perangkat lunak/quux
saya$ ggcov --gcda-prefix=/tmp/gcda -r .
PILIHAN
-p dir, --gcda-awalan=dir
Menyebabkan program pengujian, dan setiap anak yang memprosesnya berjalan, untuk mengarahkan ulang absolut apa pun
nama file berakhiran .gcda ke nama file di bawah direktori dir.
PERINGATAN
Ggcov-lari menggunakan shim perpustakaan bersama dan LD_PRELOAD fitur tautan runtime ke
mencegat panggilan perpustakaan tertentu oleh program yang diinstrumentasi. Untuk keamanan yang sangat baik
alasan, LD_PRELOAD dinonaktifkan untuk program setuid atau setgid. Jadi jika program pengujian Anda
bergantung pada perilaku setuid, menjalankan ggcov Tidak akan berhasil. Salah satu solusi yang mungkin adalah dengan menggunakan
sudo or su untuk mengubah userid sebelum menggunakan menjalankan ggcov, seperti ini:
saya$ sudo -u pengguna lain ggcov-run --gcda-prefix=/foo ./testprogram
Gunakan ggcov-run online menggunakan layanan onworks.net