Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen ggcov-run komutudur.
Program:
ADI
ggcov-run - aletli bir test programını çalıştırın
SİNOPSİS
ggcov-run [seçenekleri] [--] program argümanlar...
TANIM
Ggcov koşusu kullanılarak enstrümante edilmiş bir test programını çalıştırmak için kullanılabilir. gcc --kapsama inşa edildiğinde,
belirli koşullar altında. Varsayılan davranış olarak kullanımı tamamen isteğe bağlıdır.
gcc enstrümantasyonu çoğu koşulda faydalı olacak şekilde tasarlanmıştır.
Ggcov koşusu bir programı ve onun argümanlarını argüman olarak alır ve programı bazılarıyla çalıştırır.
davranış değişiklikleri (şu şekilde) iz). Hiçbir seçenek verilmezse program
hiçbir değişiklik yapmadan çalıştırın.
GDA DOSYA YERLER
Gcc araçlarının varsayılan davranışıyla ilgili bir sorun, konumları içerir.
kapsama verileri. Enstrümanlı test programları okuyacak, değiştirecek ve yeniden yazacak .gcda Dosyaları
programdan çıkıldığında. Bu dosyaların konumları derleyici tarafından şu adreste seçilir:
Derleme zamanı; dosyalar ilgili dizinin yanındaki derleme dizinine yerleştirilecektir. .c
dosya. Derleyici bu bilgiyi dosyaya kaydeder. .o dosya. Örneğin, derlerseniz
Dosya foo.c dizinde /ev/ben/yazılım/quux, ardından yol adı
/home/me/software/quux/foo.gcda test programında sabit kodlanmıştır. Tabii ki programlar
gibi kapsama verilerini inceleyen ggkov, Aramak .gcda oradaki dosyalar.
Birçok test uygulaması için bu gayet iyi çalışıyor. Ancak sorunlar ortaya çıktığında
enstrümanlı programın başka bir makinede veya başka bir kullanıcı kimliği olarak çalıştırılması gerekiyor veya
derleme dizini geçicidir veya derleme dizininin bulunduğu başka herhangi bir test senaryosunda
ya mevcut değil ya da çalışan test programı tarafından yazılamıyor. Bu durumlarda,
elde etmek için testten önce ve sonra geçici bir dosya taşıma işlemi yapmanız gerekir. .gcda
Dosyaları doğru izinlere sahip, doğru makinede doğru konuma yerleştirin.
Daha iyi bir yaklaşım kullanmaktır ggcov-run ile --gcda-ön eki seçenek. Bu seçenek şu şekilde alınır:
bir değer her birinin yol adının başına eklenen bir dizin .gcda test programını dosyalayın
erişir. Yukarıdaki örneğe devam ederek test programını şu şekilde çalıştıralım:
me$ ggcov-run --gcda-prefix=/tmp/gcda ./testprogram test-args...
sonuçlanacak .gcda dosya yazılıyor /tmp/gcda/home/me/software/quux/foo.gcda.
Dizin ağacı otomatik olarak oluşturulacaktır. .gcda dosyalar yazılır ve
dosya ve dizin izinleri tüm kullanıcılar için okuma erişimine izin verecektir.
Bunu not et ggkov aynı zamanda bir --gcda-ön eki aramak için kullanılabilecek seçenek .gcda
derleme dizini dışındaki konumlardaki dosyalar. Örneğimizde:
me$ cd /ev/ben/yazılım/quux
me$ ggcov --gcda-prefix=/tmp/gcda -r .
SEÇENEKLER
-p dir, --gcda-ön eki=dir
Test programının ve çalıştırdığı tüm alt süreçlerin herhangi bir mutlak yönlendirme yapmasına neden olun
dosya adı ile biten .gcda dizinin altındaki bir dosya adına dir.
UYARILAR
Ggcov koşusu paylaşılan bir kitaplık dolgusu kullanır ve LD_PRELOAD çalışma zamanı bağlayıcısının özelliği
belirli kütüphane çağrılarının aletli program tarafından engellenmesi. Çok iyi güvenlik için
nedenler LD_PRELOAD setuid veya setgid programları için devre dışıdır. Yani eğer test programınız
sabit davranışa dayanır, ggcov-run çalışmayacak. Olası bir geçici çözüm kullanmaktır
sudo or su kullanmadan önce kullanıcı kimliğini değiştirmek için ggcov-run, Şöyle:
me$ sudo -u otheruser ggcov-run --gcda-prefix=/foo ./testprogram
Onworks.net hizmetlerini kullanarak ggcov-run'u çevrimiçi kullanın