changes
This commit is contained in:
+1
@@ -177,6 +177,7 @@ public abstract class AbstractSrcmlTreeGenerator extends TreeGenerator {
|
|||||||
private void fixPos(TreeContext ctx) {
|
private void fixPos(TreeContext ctx) {
|
||||||
for (ITree t : ctx.getRoot().postOrder()) {
|
for (ITree t : ctx.getRoot().postOrder()) {
|
||||||
if (!t.isLeaf()) {
|
if (!t.isLeaf()) {
|
||||||
|
if(t.getType() == 0) continue;
|
||||||
//put the keywords as labels
|
//put the keywords as labels
|
||||||
// if(t.getType() == 34 || t.getType() ==37 || t.getType() ==38 || t.getType()==39 || t.getType() == 41 || t.getType()==45 || t.getType() ==55 || t.getType()==14){
|
// if(t.getType() == 34 || t.getType() ==37 || t.getType() ==38 || t.getType()==39 || t.getType() == 41 || t.getType()==45 || t.getType() ==55 || t.getType()==14){
|
||||||
// t.setLabel(NodeMap_new.map.get(t.getType())+" " +t.getLabel());
|
// t.setLabel(NodeMap_new.map.get(t.getType())+" " +t.getLabel());
|
||||||
|
|||||||
@@ -200,6 +200,7 @@ public class NodeMap_new {
|
|||||||
map.put( 197 , "message");
|
map.put( 197 , "message");
|
||||||
map.put( 199 , "protocol_list");
|
map.put( 199 , "protocol_list");
|
||||||
map.put( 200 , "category");
|
map.put( 200 , "category");
|
||||||
|
map.put( 201 , "clause");
|
||||||
|
|
||||||
//
|
//
|
||||||
// map.put(1 , "unit");
|
// map.put(1 , "unit");
|
||||||
|
|||||||
@@ -26,3 +26,331 @@ linux, git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
|
|||||||
gmp,https://github.com/ryepdx/gmp
|
gmp,https://github.com/ryepdx/gmp
|
||||||
lighttpd1.4,https://github.com/lighttpd/lighttpd1.4.git
|
lighttpd1.4,https://github.com/lighttpd/lighttpd1.4.git
|
||||||
lighttpd2,https://github.com/lighttpd/lighttpd2.git
|
lighttpd2,https://github.com/lighttpd/lighttpd2.git
|
||||||
|
xqemu,https://github.com/xqemu/xqemu
|
||||||
|
xqemu,https://github.com/xqemu/xqemu
|
||||||
|
git,https://github.com/git/git
|
||||||
|
gpdb,https://github.com/greenplum-db/gpdb
|
||||||
|
MonetDBLite-C,https://github.com/MonetDB/MonetDBLite-C
|
||||||
|
panda,https://github.com/panda-re/panda
|
||||||
|
freeradius-server,https://github.com/FreeRADIUS/freeradius-server
|
||||||
|
bind9,https://github.com/isc-projects/bind9
|
||||||
|
kamailio,https://github.com/kamailio/kamailio
|
||||||
|
ompi,https://github.com/open-mpi/ompi
|
||||||
|
prrte,https://github.com/openpmix/prrte
|
||||||
|
openssl,https://github.com/openssl/openssl
|
||||||
|
NetworkManager,https://github.com/NetworkManager/NetworkManager
|
||||||
|
freeciv,https://github.com/freeciv/freeciv
|
||||||
|
pcp,https://github.com/performancecopilot/pcp
|
||||||
|
gnutls,https://github.com/gnutls/gnutls
|
||||||
|
afni,https://github.com/afni/afni
|
||||||
|
fontforge,https://github.com/fontforge/fontforge
|
||||||
|
valgrind,https://github.com/pmem/valgrind
|
||||||
|
ImageMagick6,https://github.com/ImageMagick/ImageMagick6
|
||||||
|
rsyslog,https://github.com/rsyslog/rsyslog
|
||||||
|
gpac,https://github.com/gpac/gpac
|
||||||
|
PackageKit,https://github.com/hughsie/PackageKit
|
||||||
|
libdxf,https://github.com/bert/libdxf
|
||||||
|
contiki,https://github.com/contiki-os/contiki
|
||||||
|
syslog-ng,https://github.com/syslog-ng/syslog-ng
|
||||||
|
collectd,https://github.com/collectd/collectd
|
||||||
|
atheme,https://github.com/atheme/atheme
|
||||||
|
open-watcom-v2,https://github.com/open-watcom/open-watcom-v2
|
||||||
|
tvheadend,https://github.com/tvheadend/tvheadend
|
||||||
|
eudev,https://github.com/gentoo/eudev
|
||||||
|
SRB2,https://github.com/STJr/SRB2
|
||||||
|
hyperion,https://github.com/SDL-Hercules-390/hyperion
|
||||||
|
riscv-openocd,https://github.com/riscv/riscv-openocd
|
||||||
|
lxc,https://github.com/lxc/lxc
|
||||||
|
deadbeef,https://github.com/DeaDBeeF-Player/deadbeef
|
||||||
|
openocd,https://github.com/ilg-archived/openocd
|
||||||
|
tmux,https://github.com/ThomasAdam/tmux
|
||||||
|
strace,https://github.com/strace/strace
|
||||||
|
ack,https://github.com/davidgiven/ack
|
||||||
|
i3,https://github.com/Airblader/i3
|
||||||
|
zstd,https://github.com/facebook/zstd
|
||||||
|
libyang,https://github.com/CESNET/libyang
|
||||||
|
mps,https://github.com/Ravenbrook/mps
|
||||||
|
acados,https://github.com/acados/acados
|
||||||
|
i3,https://github.com/i3/i3
|
||||||
|
hashcat,https://github.com/hashcat/hashcat
|
||||||
|
freetds,https://github.com/FreeTDS/freetds
|
||||||
|
SLASHEM-Extended,https://github.com/SLASHEM-Extended/SLASHEM-Extended
|
||||||
|
xmake,https://github.com/xmake-io/xmake
|
||||||
|
indigo,https://github.com/indigo-astronomy/indigo
|
||||||
|
libpostal,https://github.com/openvenues/libpostal
|
||||||
|
openwsn-fw,https://github.com/openwsn-berkeley/openwsn-fw
|
||||||
|
skiboot,https://github.com/open-power/skiboot
|
||||||
|
civetweb,https://github.com/civetweb/civetweb
|
||||||
|
ga,https://github.com/GlobalArrays/ga
|
||||||
|
harvey,https://github.com/Harvey-OS/harvey
|
||||||
|
astrometry.net,https://github.com/dstndstn/astrometry.net
|
||||||
|
aranym,https://github.com/aranym/aranym
|
||||||
|
NyuziProcessor,https://github.com/jbush001/NyuziProcessor
|
||||||
|
Netatalk,https://github.com/Netatalk/Netatalk
|
||||||
|
libevent,https://github.com/libevent/libevent
|
||||||
|
PnetCDF,https://github.com/Parallel-NetCDF/PnetCDF
|
||||||
|
owfs,https://github.com/owfs/owfs
|
||||||
|
glfw,https://github.com/glfw/glfw
|
||||||
|
dateutils,https://github.com/hroptatyr/dateutils
|
||||||
|
alsa-lib,https://github.com/alsa-project/alsa-lib
|
||||||
|
notion,https://github.com/raboof/notion
|
||||||
|
mint-arena,https://github.com/zturtleman/mint-arena
|
||||||
|
citus,https://github.com/citusdata/citus
|
||||||
|
simh,https://github.com/simh/simh
|
||||||
|
file,https://github.com/file/file
|
||||||
|
aircrack-ng,https://github.com/aircrack-ng/aircrack-ng
|
||||||
|
nagios-plugins,https://github.com/nagios-plugins/nagios-plugins
|
||||||
|
librdkafka,https://github.com/edenhill/librdkafka
|
||||||
|
bitlbee,https://github.com/bitlbee/bitlbee
|
||||||
|
cdogs-sdl,https://github.com/cxong/cdogs-sdl
|
||||||
|
LCUI,https://github.com/lc-soft/LCUI
|
||||||
|
minisphere,https://github.com/fatcerberus/minisphere
|
||||||
|
monitoring-plugins,https://github.com/monitoring-plugins/monitoring-plugins
|
||||||
|
openrc,https://github.com/OpenRC/openrc
|
||||||
|
OpenDUNE,https://github.com/OpenDUNE/OpenDUNE
|
||||||
|
aerospike-client-c,https://github.com/aerospike/aerospike-client-c
|
||||||
|
libming,https://github.com/libming/libming
|
||||||
|
kvazaar,https://github.com/ultravideo/kvazaar
|
||||||
|
deltachat-core,https://github.com/deltachat/deltachat-core
|
||||||
|
ettercap,https://github.com/Ettercap/ettercap
|
||||||
|
wget2,https://github.com/rockdaboot/wget2
|
||||||
|
geeqie,https://github.com/BestImageViewer/geeqie
|
||||||
|
libzip,https://github.com/nih-at/libzip
|
||||||
|
specfem2d,https://github.com/geodynamics/specfem2d
|
||||||
|
jailhouse,https://github.com/siemens/jailhouse
|
||||||
|
xash3d,https://github.com/FWGS/xash3d
|
||||||
|
oniguruma,https://github.com/kkos/oniguruma
|
||||||
|
openvpn,https://github.com/OpenVPN/openvpn
|
||||||
|
libopencm3,https://github.com/libopencm3/libopencm3
|
||||||
|
atari800,https://github.com/atari800/atari800
|
||||||
|
htslib,https://github.com/samtools/htslib
|
||||||
|
luajit2,https://github.com/openresty/luajit2
|
||||||
|
dnscrypt-proxy,https://github.com/dyne/dnscrypt-proxy
|
||||||
|
ccan,https://github.com/rustyrussell/ccan
|
||||||
|
rumprun,https://github.com/rumpkernel/rumprun
|
||||||
|
testdisk,https://github.com/cgsecurity/testdisk
|
||||||
|
ccextractor,https://github.com/CCExtractor/ccextractor
|
||||||
|
hackrf,https://github.com/mossmann/hackrf
|
||||||
|
flex,https://github.com/westes/flex
|
||||||
|
libmdbx,https://github.com/erthink/libmdbx
|
||||||
|
PowerShell-DSC-for-Linux,https://github.com/Microsoft/PowerShell-DSC-for-Linux
|
||||||
|
lcdproc,https://github.com/lcdproc/lcdproc
|
||||||
|
cmus,https://github.com/cmus/cmus
|
||||||
|
libstoragemgmt,https://github.com/libstorage/libstoragemgmt
|
||||||
|
ish,https://github.com/ish-app/ish
|
||||||
|
celix,https://github.com/apache/celix
|
||||||
|
nfft,https://github.com/NFFT/nfft
|
||||||
|
xf86-input-wacom,https://github.com/linuxwacom/xf86-input-wacom
|
||||||
|
libcaca,https://github.com/cacalabs/libcaca
|
||||||
|
lldpd,https://github.com/vincentbernat/lldpd
|
||||||
|
speex,https://github.com/xiph/speex
|
||||||
|
Icecast-Server,https://github.com/xiph/Icecast-Server
|
||||||
|
mosquitto,https://github.com/eclipse/mosquitto
|
||||||
|
aravis,https://github.com/AravisProject/aravis
|
||||||
|
tcsh,https://github.com/tcsh-org/tcsh
|
||||||
|
pysam,https://github.com/pysam-developers/pysam
|
||||||
|
c-blosc2,https://github.com/Blosc/c-blosc2
|
||||||
|
blis,https://github.com/flame/blis
|
||||||
|
libiio,https://github.com/analogdevicesinc/libiio
|
||||||
|
ngs,https://github.com/ngs-lang/ngs
|
||||||
|
rauc,https://github.com/rauc/rauc
|
||||||
|
minizip,https://github.com/nmoinvaz/minizip
|
||||||
|
tlf,https://github.com/Tlf/tlf
|
||||||
|
NumCosmo,https://github.com/NumCosmo/NumCosmo
|
||||||
|
pilight,https://github.com/pilight/pilight
|
||||||
|
pg_pathman,https://github.com/postgrespro/pg_pathman
|
||||||
|
libfuse,https://github.com/libfuse/libfuse
|
||||||
|
cgreen,https://github.com/cgreen-devs/cgreen
|
||||||
|
hawq,https://github.com/apache/hawq
|
||||||
|
check,https://github.com/libcheck/check
|
||||||
|
mpifileutils,https://github.com/hpc/mpifileutils
|
||||||
|
ck,https://github.com/concurrencykit/ck
|
||||||
|
openpbs,https://github.com/openpbs/openpbs
|
||||||
|
oftc-ircservices,https://github.com/oftc/oftc-ircservices
|
||||||
|
systemshock,https://github.com/Interrupt/systemshock
|
||||||
|
dynomite,https://github.com/Netflix/dynomite
|
||||||
|
bahamut,https://github.com/DALnet/bahamut
|
||||||
|
tinyproxy,https://github.com/tinyproxy/tinyproxy
|
||||||
|
crazyflie-firmware,https://github.com/bitcraze/crazyflie-firmware
|
||||||
|
librsync,https://github.com/librsync/librsync
|
||||||
|
gdnsd,https://github.com/gdnsd/gdnsd
|
||||||
|
Zenroom,https://github.com/dyne/Zenroom
|
||||||
|
yubico-piv-tool,https://github.com/Yubico/yubico-piv-tool
|
||||||
|
petitboot,https://github.com/open-power/petitboot
|
||||||
|
mercury,https://github.com/mercury-hpc/mercury
|
||||||
|
libvmi,https://github.com/libvmi/libvmi
|
||||||
|
Criterion,https://github.com/Snaipe/Criterion
|
||||||
|
libqb,https://github.com/ClusterLabs/libqb
|
||||||
|
paho.mqtt.c,https://github.com/eclipse/paho.mqtt.c
|
||||||
|
mupnp,https://github.com/cybergarage/mupnp
|
||||||
|
raft,https://github.com/canonical/raft
|
||||||
|
libdill,https://github.com/sustrik/libdill
|
||||||
|
pupnp,https://github.com/pupnp/pupnp
|
||||||
|
munge,https://github.com/dun/munge
|
||||||
|
nginx-vod-module,https://github.com/kaltura/nginx-vod-module
|
||||||
|
TIC-80,https://github.com/nesbox/TIC-80
|
||||||
|
ubertooth,https://github.com/greatscottgadgets/ubertooth
|
||||||
|
controller,https://github.com/kiibohd/controller
|
||||||
|
tarsnap,https://github.com/Tarsnap/tarsnap
|
||||||
|
miniJVM,https://github.com/digitalgust/miniJVM
|
||||||
|
libmaxminddb,https://github.com/maxmind/libmaxminddb
|
||||||
|
packetgraph,https://github.com/outscale/packetgraph
|
||||||
|
zmap,https://github.com/zmap/zmap
|
||||||
|
tpm2-abrmd,https://github.com/tpm2-software/tpm2-abrmd
|
||||||
|
dps-for-iot,https://github.com/intel/dps-for-iot
|
||||||
|
libplacebo,https://github.com/haasn/libplacebo
|
||||||
|
parasail,https://github.com/jeffdaily/parasail
|
||||||
|
powerman,https://github.com/chaos/powerman
|
||||||
|
rmw,https://github.com/theimpossibleastronaut/rmw
|
||||||
|
mpb,https://github.com/NanoComp/mpb
|
||||||
|
mapcache,https://github.com/mapserver/mapcache
|
||||||
|
secp256k1,https://github.com/bitcoin-core/secp256k1
|
||||||
|
app,https://github.com/Studio-Link/app
|
||||||
|
portable,https://github.com/libressl-portable/portable
|
||||||
|
openbsm,https://github.com/openbsm/openbsm
|
||||||
|
Picnic,https://github.com/IAIK/Picnic
|
||||||
|
Unity,https://github.com/ThrowTheSwitch/Unity
|
||||||
|
cyclonedds,https://github.com/eclipse-cyclonedds/cyclonedds
|
||||||
|
inadyn,https://github.com/troglobit/inadyn
|
||||||
|
input-wacom,https://github.com/linuxwacom/input-wacom
|
||||||
|
my_basic,https://github.com/paladin-t/my_basic
|
||||||
|
pure-ftpd,https://github.com/jedisct1/pure-ftpd
|
||||||
|
fakechroot,https://github.com/dex4er/fakechroot
|
||||||
|
liboqs,https://github.com/open-quantum-safe/liboqs
|
||||||
|
libatomic_ops,https://github.com/ivmai/libatomic_ops
|
||||||
|
netcode,https://github.com/networkprotocol/netcode
|
||||||
|
fwup,https://github.com/fhunleth/fwup
|
||||||
|
otfcc,https://github.com/caryll/otfcc
|
||||||
|
mcu,https://github.com/digitalbitbox/mcu
|
||||||
|
cglm,https://github.com/recp/cglm
|
||||||
|
gphoto2,https://github.com/gphoto/gphoto2
|
||||||
|
ksmbd-tools,https://github.com/namjaejeon/ksmbd-tools
|
||||||
|
unabto,https://github.com/nabto/unabto
|
||||||
|
SSLproxy,https://github.com/sonertari/SSLproxy
|
||||||
|
logrotate,https://github.com/logrotate/logrotate
|
||||||
|
trunk,https://github.com/idathena/trunk
|
||||||
|
duc,https://github.com/zevv/duc
|
||||||
|
parodus,https://github.com/xmidt-org/parodus
|
||||||
|
crust,https://github.com/crust-firmware/crust
|
||||||
|
liblognorm,https://github.com/rsyslog/liblognorm
|
||||||
|
axel,https://github.com/axel-download-accelerator/axel
|
||||||
|
MultiMarkdown-6,https://github.com/fletcher/MultiMarkdown-6
|
||||||
|
dqlite,https://github.com/canonical/dqlite
|
||||||
|
snowball,https://github.com/snowballstem/snowball
|
||||||
|
libqrencode,https://github.com/fukuchi/libqrencode
|
||||||
|
pesign,https://github.com/rhboot/pesign
|
||||||
|
3CeAM,https://github.com/3CeAM/3CeAM
|
||||||
|
vnstat,https://github.com/vergoh/vnstat
|
||||||
|
scs,https://github.com/cvxgrp/scs
|
||||||
|
snoopy,https://github.com/a2o/snoopy
|
||||||
|
libtpms,https://github.com/stefanberger/libtpms
|
||||||
|
sniproxy,https://github.com/dlundquist/sniproxy
|
||||||
|
ngx_php7,https://github.com/rryqszq4/ngx_php7
|
||||||
|
mod_perimeterx,https://github.com/PerimeterX/mod_perimeterx
|
||||||
|
luvi,https://github.com/luvit/luvi
|
||||||
|
Clight,https://github.com/FedeDP/Clight
|
||||||
|
imv,https://github.com/eXeC64/imv
|
||||||
|
UDUNITS-2,https://github.com/Unidata/UDUNITS-2
|
||||||
|
redshift,https://github.com/jonls/redshift
|
||||||
|
glorytun,https://github.com/angt/glorytun
|
||||||
|
liblouisutdml,https://github.com/liblouis/liblouisutdml
|
||||||
|
openpace,https://github.com/frankmorgner/openpace
|
||||||
|
proftpd-mod_proxy,https://github.com/Castaglia/proftpd-mod_proxy
|
||||||
|
f-stack,https://github.com/F-Stack/f-stack
|
||||||
|
ior,https://github.com/hpc/ior
|
||||||
|
watchdogd,https://github.com/troglobit/watchdogd
|
||||||
|
gnome-inform7,https://github.com/ptomato/gnome-inform7
|
||||||
|
sled,https://github.com/shinyblink/sled
|
||||||
|
Microduino-IDE-Support,https://github.com/wasdpkj/Microduino-IDE-Support
|
||||||
|
aws-c-common,https://github.com/awslabs/aws-c-common
|
||||||
|
noise-repellent,https://github.com/lucianodato/noise-repellent
|
||||||
|
Little-CMS,https://github.com/mm2/Little-CMS
|
||||||
|
Adafruit_nRF52_Bootloader,https://github.com/adafruit/Adafruit_nRF52_Bootloader
|
||||||
|
jasper,https://github.com/jasper-software/jasper
|
||||||
|
can-utils,https://github.com/linux-can/can-utils
|
||||||
|
masscan,https://github.com/robertdavidgraham/masscan
|
||||||
|
balde,https://github.com/balde/balde
|
||||||
|
libfreefare,https://github.com/nfc-tools/libfreefare
|
||||||
|
GNUSim8085,https://github.com/GNUSim8085/GNUSim8085
|
||||||
|
pick,https://github.com/mptre/pick
|
||||||
|
ksm,https://github.com/asamy/ksm
|
||||||
|
libctl,https://github.com/NanoComp/libctl
|
||||||
|
libepoxy,https://github.com/anholt/libepoxy
|
||||||
|
libfort,https://github.com/seleznevae/libfort
|
||||||
|
cpuid,https://github.com/tycho/cpuid
|
||||||
|
x11vnc,https://github.com/LibVNC/x11vnc
|
||||||
|
dreamchess,https://github.com/dreamchess/dreamchess
|
||||||
|
umockdev,https://github.com/martinpitt/umockdev
|
||||||
|
nats.c,https://github.com/nats-io/nats.c
|
||||||
|
binjgb,https://github.com/binji/binjgb
|
||||||
|
mcfgthread,https://github.com/lhmouse/mcfgthread
|
||||||
|
bluez-alsa,https://github.com/Arkq/bluez-alsa
|
||||||
|
rtty,https://github.com/zhaojh329/rtty
|
||||||
|
ExternData,https://github.com/modelica-3rdparty/ExternData
|
||||||
|
c-tap-harness,https://github.com/rra/c-tap-harness
|
||||||
|
irqbalance,https://github.com/Irqbalance/irqbalance
|
||||||
|
OpenHMD,https://github.com/OpenHMD/OpenHMD
|
||||||
|
vmemcache,https://github.com/pmem/vmemcache
|
||||||
|
nxdk,https://github.com/XboxDev/nxdk
|
||||||
|
clr-boot-manager,https://github.com/clearlinux/clr-boot-manager
|
||||||
|
digest,https://github.com/eddelbuettel/digest
|
||||||
|
epk2extract,https://github.com/openlgtv/epk2extract
|
||||||
|
ENet-CSharp,https://github.com/nxrighthere/ENet-CSharp
|
||||||
|
ChameleonMini-rebooted,https://github.com/iceman1001/ChameleonMini-rebooted
|
||||||
|
mod-host,https://github.com/moddevices/mod-host
|
||||||
|
fzy,https://github.com/jhawthorn/fzy
|
||||||
|
sjs,https://github.com/saghul/sjs
|
||||||
|
opusfile,https://github.com/xiph/opusfile
|
||||||
|
libuev,https://github.com/troglobit/libuev
|
||||||
|
grub4dos,https://github.com/chenall/grub4dos
|
||||||
|
logswan,https://github.com/fcambus/logswan
|
||||||
|
gdk,https://github.com/Blockstream/gdk
|
||||||
|
sshfs,https://github.com/libfuse/sshfs
|
||||||
|
libtelnet,https://github.com/seanmiddleditch/libtelnet
|
||||||
|
biscuit,https://github.com/zhou-lab/biscuit
|
||||||
|
librtlsdr,https://github.com/steve-m/librtlsdr
|
||||||
|
vx32,https://github.com/0intro/vx32
|
||||||
|
twolame,https://github.com/njh/twolame
|
||||||
|
cminpack,https://github.com/devernay/cminpack
|
||||||
|
sftpserver,https://github.com/ewxrjk/sftpserver
|
||||||
|
arduino-device-lib,https://github.com/TheThingsNetwork/arduino-device-lib
|
||||||
|
stream-lua-nginx-module,https://github.com/openresty/stream-lua-nginx-module
|
||||||
|
oppai-ng,https://github.com/Francesco149/oppai-ng
|
||||||
|
ccnet,https://github.com/haiwen/ccnet
|
||||||
|
lexbor,https://github.com/lexbor/lexbor
|
||||||
|
i3lock,https://github.com/i3/i3lock
|
||||||
|
par,https://github.com/prideout/par
|
||||||
|
Adafruit-GFX-Library,https://github.com/adafruit/Adafruit-GFX-Library
|
||||||
|
munin-c,https://github.com/munin-monitoring/munin-c
|
||||||
|
libevt,https://github.com/libyal/libevt
|
||||||
|
yabar,https://github.com/geommer/yabar
|
||||||
|
libvmod-redis,https://github.com/carlosabalde/libvmod-redis
|
||||||
|
FiSH-irssi,https://github.com/falsovsky/FiSH-irssi
|
||||||
|
bcal,https://github.com/jarun/bcal
|
||||||
|
esnacc-ng,https://github.com/esnacc/esnacc-ng
|
||||||
|
libhydrogen,https://github.com/jedisct1/libhydrogen
|
||||||
|
aws-c-io,https://github.com/awslabs/aws-c-io
|
||||||
|
varnish-modules,https://github.com/varnish/varnish-modules
|
||||||
|
rcppredis,https://github.com/eddelbuettel/rcppredis
|
||||||
|
cgltf,https://github.com/jkuhlmann/cgltf
|
||||||
|
kafkacat,https://github.com/edenhill/kafkacat
|
||||||
|
gdigi,https://github.com/desowin/gdigi
|
||||||
|
abcm2ps,https://github.com/leesavide/abcm2ps
|
||||||
|
proxytunnel,https://github.com/proxytunnel/proxytunnel
|
||||||
|
libphenom,https://github.com/facebookarchive/libphenom
|
||||||
|
evdi,https://github.com/DisplayLink/evdi
|
||||||
|
enca,https://github.com/nijel/enca
|
||||||
|
M7M01_MuEukaron,https://github.com/EDI-Systems/M7M01_MuEukaron
|
||||||
|
libva-utils,https://github.com/intel/libva-utils
|
||||||
|
Enterprise,https://github.com/SevenBits/Enterprise
|
||||||
|
rem,https://github.com/creytiv/rem
|
||||||
|
SDL_kitchensink,https://github.com/katajakasa/SDL_kitchensink
|
||||||
|
sntpd,https://github.com/troglobit/sntpd
|
||||||
|
Virtual-Assistant,https://github.com/ritwik12/Virtual-Assistant
|
||||||
|
port-mirroring,https://github.com/mmaraya/port-mirroring
|
||||||
|
telize,https://github.com/fcambus/telize
|
||||||
|
zhe,https://github.com/atolab/zhe
|
||||||
|
Tilengine,https://github.com/megamarc/Tilengine
|
||||||
|
Netopeer2,https://github.com/CESNET/Netopeer2
|
||||||
|
libvmod-curl,https://github.com/varnish/libvmod-curl
|
||||||
|
ocaml-freestanding,https://github.com/mirage/ocaml-freestanding
|
||||||
|
|||||||
|
+14
-3
@@ -25,10 +25,21 @@ def export():
|
|||||||
os.mkdir(join(BUGDIR))
|
os.mkdir(join(BUGDIR))
|
||||||
# bugList = [i.replace(':', '-').replace('manybugs-', 'squareslab/manybugs:') for i in bugList]
|
# bugList = [i.replace(':', '-').replace('manybugs-', 'squareslab/manybugs:') for i in bugList]
|
||||||
# exportCore(bugList[0])
|
# exportCore(bugList[0])
|
||||||
|
cmd = 'bugzoo bug list'
|
||||||
|
logging.info(cmd)
|
||||||
|
output, e = shellGitCheckout(cmd)
|
||||||
bugList = []
|
bugList = []
|
||||||
with open(introClassFile, 'r') as file:
|
for line in output.splitlines():
|
||||||
for line in file.readlines():
|
if line == '':
|
||||||
bugList.append(line.strip())
|
continue
|
||||||
|
potentialId = line.split('|')[1].strip()
|
||||||
|
if potentialId.startswith('introclass'):
|
||||||
|
if 'Yes' in line:
|
||||||
|
bugList.append(potentialId)
|
||||||
|
|
||||||
|
# with open(introClassFile, 'r') as file:
|
||||||
|
# for line in file.readlines():
|
||||||
|
# bugList.append(line.strip())
|
||||||
print("bugList length: {}".format(len(bugList)))
|
print("bugList length: {}".format(len(bugList)))
|
||||||
for b in bugList:
|
for b in bugList:
|
||||||
exportCore(b)
|
exportCore(b)
|
||||||
|
|||||||
+504
-10
@@ -33,7 +33,7 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
# subject = 'ALL'
|
# subject = 'ALL'
|
||||||
# rootType = 'if'
|
# rootType = 'if'
|
||||||
|
# job = 'patterns'
|
||||||
print(job)
|
print(job)
|
||||||
|
|
||||||
|
|
||||||
@@ -99,21 +99,21 @@ if __name__ == '__main__':
|
|||||||
elif job =='indexClusters':
|
elif job =='indexClusters':
|
||||||
from sprinferIndex import runSpinfer
|
from sprinferIndex import runSpinfer
|
||||||
runSpinfer()
|
runSpinfer()
|
||||||
|
#
|
||||||
from sprinferIndex import test
|
# from sprinferIndex import test
|
||||||
test()
|
# test()
|
||||||
from sprinferIndex import divideCoccis
|
from sprinferIndex import divideCoccis
|
||||||
divideCoccis()
|
divideCoccis()
|
||||||
from sprinferIndex import removeDuplicates
|
from sprinferIndex import removeDuplicates
|
||||||
removeDuplicates()
|
removeDuplicates()
|
||||||
|
|
||||||
elif job == 'evalManyBugs':
|
elif job == 'evalManyBugs':
|
||||||
from patchManyBugs import patchCore
|
# from patchManyBugs import patchCore
|
||||||
patchCore()
|
# patchCore()
|
||||||
# from patchManyBugs import patched
|
## from patchManyBugs import patched
|
||||||
# patched()
|
## patched()
|
||||||
from patchManyBugs import exportSosPatches
|
# from patchManyBugs import exportSosPatches
|
||||||
exportSosPatches()
|
# exportSosPatches()
|
||||||
from validate_manybugs import validate
|
from validate_manybugs import validate
|
||||||
|
|
||||||
validate()
|
validate()
|
||||||
@@ -178,8 +178,502 @@ if __name__ == '__main__':
|
|||||||
elif job == 'patterns':
|
elif job == 'patterns':
|
||||||
from stats import exportAbstractPatterns
|
from stats import exportAbstractPatterns
|
||||||
exportAbstractPatterns()
|
exportAbstractPatterns()
|
||||||
|
elif job == 'travis':
|
||||||
|
|
||||||
|
if isfile(join(DATA_PATH,'repoList')):
|
||||||
|
repoList = load_zipped_pickle(join(DATA_PATH,'repoList'))
|
||||||
|
else:
|
||||||
|
jobsPath = '/Users/anil.koyuncu/Downloads/jobs/'
|
||||||
|
files = listdir(jobsPath)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def findRepos(file):
|
||||||
|
a = pd.read_json(join(jobsPath, file))
|
||||||
|
repoList = a[a.config.apply(lambda x: x['language'] == 'c')].repository_slug.unique().tolist()
|
||||||
|
return repoList
|
||||||
|
repos = parallelRunMerge(findRepos,files)
|
||||||
|
repos
|
||||||
|
repoList = list(itertools.chain.from_iterable(repos))
|
||||||
|
repoList = list(set(repoList))
|
||||||
|
|
||||||
|
save_zipped_pickle(repoList,join(DATA_PATH,'repoList'))
|
||||||
|
repoList
|
||||||
|
if not isfile(join(DATA_PATH,'repoDF')):
|
||||||
|
import requests
|
||||||
|
|
||||||
|
results = []
|
||||||
|
|
||||||
|
start = 1
|
||||||
|
prevDF = load_zipped_pickle( join(DATA_PATH, 'repoDF'))
|
||||||
|
prevMap = prevDF.set_index('repo').to_dict()['commitCount']
|
||||||
|
repoDF = pd.DataFrame(columns=['repo', 'commitCount'])
|
||||||
|
|
||||||
|
for idx, repo in enumerate(prevDF.repo.values.tolist()):
|
||||||
|
# commit count
|
||||||
|
|
||||||
|
import time
|
||||||
|
|
||||||
|
# print("Printed immediately.")
|
||||||
|
# time.sleep(0.1)
|
||||||
|
# resp = requests.get('https://github.com/'+repo)
|
||||||
|
# if resp.status_code != 200:
|
||||||
|
# continue
|
||||||
|
# repoDF.loc[idx] = [repo, '',False]
|
||||||
|
# else:
|
||||||
|
if repo in prevMap:
|
||||||
|
count = prevMap[repo]
|
||||||
|
if count == '':
|
||||||
|
resp = requests.get('https://github.com/' + repo)
|
||||||
|
print(repo)
|
||||||
|
repo = resp.url.split('https://github.com/')[-1]
|
||||||
|
print(repo)
|
||||||
|
cmd = 'curl -H "Authorization: token 39af4590fec0181ee47c17104d46aa179560b1d9" -I -k "https://api.github.com/repos/'+repo+'/commits?per_page=1"'+ " | sed -n '/^[Ll]ink:/ s/.*\"next\".*page=\([0-9]*\).*\"last\".*/\\1/p'"
|
||||||
|
o,e=shellGitCheckout(cmd)
|
||||||
|
print(e)
|
||||||
|
print(o)
|
||||||
|
count = o.strip()
|
||||||
|
repoDF.loc[idx] = [repo, count]
|
||||||
|
# import bs4 as bs
|
||||||
|
#
|
||||||
|
# from urllib.request import urlopen
|
||||||
|
# from urllib import error
|
||||||
|
# import urllib
|
||||||
|
#
|
||||||
|
# import socket
|
||||||
|
#
|
||||||
|
# timeout = 30
|
||||||
|
# socket.setdefaulttimeout(timeout)
|
||||||
|
#
|
||||||
|
# import logging
|
||||||
|
#
|
||||||
|
# hdr = {
|
||||||
|
# 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
|
||||||
|
# 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
|
||||||
|
# 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
|
||||||
|
# 'Accept-Encoding': 'none',
|
||||||
|
# 'Accept-Language': 'en-US,en;q=0.8',
|
||||||
|
# 'Connection': 'keep-alive'}
|
||||||
|
#
|
||||||
|
# req = urllib.request.Request('https://github.com/'+repo, headers=hdr)
|
||||||
|
#
|
||||||
|
# response = urlopen(req)
|
||||||
|
# the_page = response.read()
|
||||||
|
#
|
||||||
|
# soup = bs.BeautifulSoup(the_page, "html.parser")
|
||||||
|
# meta = soup.find('meta', {'name': 'octolytics-dimension-repository_is_fork'})
|
||||||
|
#
|
||||||
|
# repoDF.loc[idx] = [repo,count,meta['content']]
|
||||||
|
|
||||||
|
repoDF
|
||||||
|
|
||||||
|
def getGitHubApi(r):
|
||||||
|
headers = {'Authorization': 'token %s' % '39af4590fec0181ee47c17104d46aa179560b1d9'}
|
||||||
|
resp = requests.get('https://api.github.com/repos/' + r, headers=headers)
|
||||||
|
if resp.status_code != 200:
|
||||||
|
print(resp.status_code)
|
||||||
|
return resp.json()
|
||||||
|
|
||||||
|
repoDF['info']= repoDF.repo.apply(lambda x:getGitHubApi(x))
|
||||||
|
else:
|
||||||
|
repoDF= load_zipped_pickle(join(DATA_PATH, 'repoDF'))
|
||||||
|
|
||||||
|
repoDF['isFork'] = repoDF['info'].apply(lambda x: x['fork'])
|
||||||
|
nonForks = repoDF[repoDF['isFork'] == False]
|
||||||
|
nonForks['forks'] = nonForks['info'].apply(lambda x: x['forks'])
|
||||||
|
nonForks['open_issues'] = nonForks['info'].apply(lambda x: x['open_issues'])
|
||||||
|
nonForks['watchers'] = nonForks['info'].apply(lambda x: x['watchers'])
|
||||||
|
nonForks['subscribers_count'] = nonForks['info'].apply(lambda x: x['subscribers_count'])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
nonForks.commitCount = nonForks.commitCount.apply(lambda x:int(x) if x!='' else 0)
|
||||||
|
nonForks.sort_values(by='commitCount', ascending=False, inplace=True)
|
||||||
|
nonForks['language'] = nonForks['info'].apply(lambda x: x['language'])
|
||||||
|
nonForks[nonForks['language'] == 'C']
|
||||||
|
# save_zipped_pickle(repoDF, join(DATA_PATH, 'repoDF'))
|
||||||
|
resp = requests.get(
|
||||||
|
'https://api.travis-ci.org/repos/php/php-src/builds?after_number=' + str(start * 25))
|
||||||
|
# if resp.status_code != 200:
|
||||||
|
# # This means something went wrong.
|
||||||
|
# raise Exception('GET /tasks/ {}'.format(resp.status_code))
|
||||||
|
# results.append(resp.json())
|
||||||
|
# start += 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
elif job == 'test':
|
||||||
|
if isfile(join(DATA_PATH, 'buildDFprocessed.pickle')):
|
||||||
|
res= load_zipped_pickle(join(DATA_PATH, 'buildDFprocessed.pickle'))
|
||||||
|
else:
|
||||||
|
if isfile(join(DATA_PATH, 'buildDF.pickle')):
|
||||||
|
buildDF = load_zipped_pickle(join(DATA_PATH, 'buildDF.pickle'))
|
||||||
|
else:
|
||||||
|
import requests
|
||||||
|
|
||||||
|
results = []
|
||||||
|
|
||||||
|
start = 1
|
||||||
|
while( start* 25 < 9250):
|
||||||
|
resp = requests.get('https://api.travis-ci.org/repos/kamailio/kamailio/builds?after_number='+str(start*25))
|
||||||
|
if resp.status_code != 200:
|
||||||
|
# This means something went wrong.
|
||||||
|
raise Exception('GET /tasks/ {}'.format(resp.status_code))
|
||||||
|
results.append(resp.json())
|
||||||
|
start+=1
|
||||||
|
|
||||||
|
buildList = list(itertools.chain.from_iterable(results))
|
||||||
|
buildDF = pd.DataFrame(buildList)
|
||||||
|
save_zipped_pickle(buildDF, join(DATA_PATH, 'buildDF.pickle'))
|
||||||
|
|
||||||
|
master = buildDF[buildDF.branch == 'master']
|
||||||
|
master = master[master.result == 1]
|
||||||
|
|
||||||
|
failingBuilds = master.number.values.tolist()
|
||||||
|
master['inducing'] = master.number.apply(lambda x: str(int(x) - 1) not in failingBuilds)
|
||||||
|
bugInducingBuilds = master[master.inducing == True]
|
||||||
|
bugInducingBuilds['number'] = bugInducingBuilds.number.apply(lambda x: str(x).zfill(5))
|
||||||
|
bugInducingBuilds.sort_values(by='number', inplace=True)
|
||||||
|
|
||||||
|
pushes = bugInducingBuilds[bugInducingBuilds.event_type == 'push']
|
||||||
|
|
||||||
|
DATASET_PATH = os.environ["REPO_PATH"]
|
||||||
|
def checkStat(x, dsName):
|
||||||
|
# repo = '/Users/anil.koyuncu/projects/linux'
|
||||||
|
cmd = 'git -C ' + join(DATASET_PATH, dsName) + ' show ' + x + " --pretty=\"format:\" --stat -M100%"
|
||||||
|
|
||||||
|
out, err = shellGitCheckout(cmd, enc='latin1')
|
||||||
|
log = {}
|
||||||
|
lines = out.strip().split('\n')
|
||||||
|
for line in lines[:-1]:
|
||||||
|
fname,ftype= line.split('|')
|
||||||
|
fname = fname.strip()
|
||||||
|
ftype= ftype.strip()
|
||||||
|
if not (ftype == '0' or ftype == 'Bin'):
|
||||||
|
|
||||||
|
ftypes = set(ftype.split(' ')[1])
|
||||||
|
if len(ftypes) == 2:
|
||||||
|
ftype = 'M'
|
||||||
|
else:
|
||||||
|
if list(ftypes)[0] == '+':
|
||||||
|
ftype = 'A'
|
||||||
|
else:
|
||||||
|
ftype = 'D'
|
||||||
|
|
||||||
|
log[fname] = ftype
|
||||||
|
log
|
||||||
|
df = pd.DataFrame(data=[[log, x]], columns=['files', 'commit'])
|
||||||
|
return df
|
||||||
|
|
||||||
|
from common.commons import parallelRunMergeNew
|
||||||
|
|
||||||
|
gitrepo = 'kamailio'
|
||||||
|
# checkStat('06e06f026d14e7d61f2ceb14445a683abbbf91bb', gitrepo)
|
||||||
|
m = parallelRunMergeNew(checkStat, pushes['commit'].values.tolist(), gitrepo)
|
||||||
|
res = pd.merge(pushes, m, on=['commit'])
|
||||||
|
#remove empty commits
|
||||||
|
res = res[res.files != {}]
|
||||||
|
# c changes
|
||||||
|
res = res[res.files.apply(lambda x: np.any([i.endswith('.c') for i in x.keys()]))]
|
||||||
|
|
||||||
|
def getJobs(x):
|
||||||
|
import requests
|
||||||
|
resp = requests.get('https://api.travis-ci.org/repos/kamailio/kamailio/builds/'+str(x))
|
||||||
|
if resp.status_code != 200:
|
||||||
|
# This means something went wrong.
|
||||||
|
raise Exception('GET /tasks/ {}'.format(resp.status_code))
|
||||||
|
result = resp.json()
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
res['buildDetails'] = res['id'].apply(lambda x:getJobs(x))
|
||||||
|
save_zipped_pickle(res, join(DATA_PATH, 'buildDFprocessed.pickle'))
|
||||||
|
res
|
||||||
|
|
||||||
|
def getMatrix(x):
|
||||||
|
if len(x) == 1:
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
for jobs in x:
|
||||||
|
if('arch' in jobs['config']):
|
||||||
|
if (jobs['config']['arch'] == 'amd64' and jobs['result'] == 1):
|
||||||
|
return True
|
||||||
|
res['goodBuild'] = res.buildDetails.apply(lambda x:getMatrix(x['matrix']))
|
||||||
|
|
||||||
|
f = '/Users/anil.koyuncu/projects/datasets/kamailio'
|
||||||
|
gitrepo = 'kamailio'
|
||||||
|
|
||||||
|
if isfile(join(DATA_PATH,gitrepo + '.df')):
|
||||||
|
res = load_zipped_pickle(join(DATA_PATH,gitrepo + '.df'))
|
||||||
|
else:
|
||||||
|
from commitCollector import makeDF
|
||||||
|
|
||||||
|
#
|
||||||
|
# cmd = 'git -C '+f +" log --no-merges --pretty=format:'{\"commit\":\"%H\",\"commitDate\":\"%ci\",\"title\":\"%f\",\"committer\":\"%ce\"}' --follow -- .travis.yml > "+join(DATA_PATH,gitrepo+'.travis')
|
||||||
|
# output = shellCallTemplate(cmd,enc='latin1')
|
||||||
|
#
|
||||||
|
# commits = makeDF(join(DATA_PATH,gitrepo+'.travis'))
|
||||||
|
|
||||||
|
from otherDatasets import checkCommitLog
|
||||||
|
|
||||||
|
|
||||||
|
# cmd = 'git log --no-merges --pretty=format:'{"commit":"%H","commitDate":"%ci","title":"%f","committer":"%ce"}' > ../tcl.commits'
|
||||||
|
cmd = 'git -C ' + f + " log --simplify-merges --date-order -m --pretty=format:'{\"commit\":\"%H\",\"commitDate\":\"%ci\",\"title\":\"%f\",\"committer\":\"%ce\"}' > " + join(DATA_PATH,gitrepo + '.commits')
|
||||||
|
output = shellCallTemplate(cmd,enc='latin1')
|
||||||
|
|
||||||
|
commits = makeDF(join(DATA_PATH,gitrepo + '.commits'))
|
||||||
|
from common.commons import parallelRunMergeNew
|
||||||
|
m = parallelRunMergeNew(checkCommitLog, commits['commit'].values.tolist(), gitrepo)
|
||||||
|
res = pd.merge(commits, m, on=['commit'])
|
||||||
|
# from common.commons import save_zipped_pickle
|
||||||
|
# save_zipped_pickle(res,join(DATA_PATH,gitrepo + '.df'))
|
||||||
|
|
||||||
|
|
||||||
|
def getRevParse(x):
|
||||||
|
cmd = 'git -C ' + f + ' rev-parse ' + x + '^@'
|
||||||
|
out, err = shellGitCheckout(cmd, enc='latin1')
|
||||||
|
rev = out.strip().split('\n')
|
||||||
|
# if len(rev) != 1:
|
||||||
|
# print('error')
|
||||||
|
|
||||||
|
df = pd.DataFrame(data=[[rev, x]], columns=['parent', 'commit'])
|
||||||
|
return df
|
||||||
|
|
||||||
|
|
||||||
|
m = parallelRunMergeNew(getRevParse, res['commit'].values.tolist())
|
||||||
|
res1 = pd.merge(res, m, on=['commit'])
|
||||||
|
save_zipped_pickle(res1, join(DATA_PATH, gitrepo + '.df'))
|
||||||
|
|
||||||
|
# workList = []
|
||||||
|
# for i,commit in enumerate(res['commit'].values.tolist()):
|
||||||
|
# os.makedirs(join(DATA_PATH, 'tcl_patches',str(i).zfill(5) +'_'+commit ))
|
||||||
|
# cmd = 'git -C ' + f + ' format-patch -M100% --text --full-index --binary -n '+ commit+'^..'+commit +' -o ' + join(DATA_PATH, 'tcl_patches',str(i).zfill(5) +'_'+commit)
|
||||||
|
# workList.append(cmd)
|
||||||
|
#
|
||||||
|
# parallelRun(shellGitCheckout,workList)
|
||||||
|
|
||||||
|
|
||||||
|
# patches = listdir('/Users/anil.koyuncu/projects/datasets/test7')
|
||||||
|
|
||||||
|
travisChanges = res[res.files.apply(lambda x: np.any([i == '.travis.yml' for i in x.keys()]))]
|
||||||
|
travisCommits = travisChanges.commit.values.tolist()
|
||||||
|
# for travis in travisCommits:
|
||||||
|
# cmd = 'git -C ' + f + ' checkout -f '+ travis
|
||||||
|
# o, e = shellGitCheckout(cmd)
|
||||||
|
# os.makedirs(join(DATA_PATH, 'travis_commits', travis), exist_ok=True)
|
||||||
|
# o,e
|
||||||
|
# print(o)
|
||||||
|
# print(e)
|
||||||
|
# cmd = 'cp '+ join(f,'.travis.yml') +" "+ join(DATA_PATH, 'travis_commits', travis)
|
||||||
|
# o, e = shellGitCheckout(cmd)
|
||||||
|
# o,e
|
||||||
|
# newContent = ''
|
||||||
|
# with open(join(DATA_PATH, 'travis_commits', travis,'.travis.yml'),'r') as file:
|
||||||
|
# travisFile = file.read()
|
||||||
|
# regex = r"include:(.*)before_install:"
|
||||||
|
# matches = re.finditer(regex, travisFile, re.MULTILINE|re.DOTALL)
|
||||||
|
#
|
||||||
|
# for matchNum, match in enumerate(matches, start=1):
|
||||||
|
# grs = match.groups()
|
||||||
|
# if len(re.findall('- name:', match.group(1))) > 0:
|
||||||
|
# newContent = travisFile.replace(grs[0],
|
||||||
|
# '\n - name: "Linux/GCC/Shared"\n os: linux\n dist: bionic\n compiler: gcc\n env:\n - BUILD_DIR=unix\n')
|
||||||
|
# else:
|
||||||
|
# newContent = travisFile.replace(grs[0],'\n - os: linux\n dist: xenial\n compiler: clang\n env:\n - BUILD_DIR=unix\n')
|
||||||
|
#
|
||||||
|
# with open(join(DATA_PATH, 'travis_commits', travis,'.travis.yml'),'w') as file:
|
||||||
|
# file.write(newContent)
|
||||||
|
|
||||||
|
|
||||||
|
res = res.head(res[res.commit == '1cb8068b970358e7b0f47935a2636ca6ae8eceb6'].iloc[0].name)
|
||||||
|
res.sort_index(inplace=True, ascending=False)
|
||||||
|
# res = res[res.parent.apply(lambda x: len(x) == 1)]
|
||||||
|
commits = res.commit.values.tolist()
|
||||||
|
|
||||||
|
branchName = 'test'
|
||||||
|
|
||||||
|
for commit in commits:
|
||||||
|
print(commit)
|
||||||
|
cmd = 'git -C ' + f + ' checkout -f '+ commit
|
||||||
|
o, e = shellGitCheckout(cmd)
|
||||||
|
o,e
|
||||||
|
print(e)
|
||||||
|
|
||||||
|
if not isfile(join(f, '.travis.yml')):
|
||||||
|
continue
|
||||||
|
|
||||||
|
|
||||||
|
# if commit in travisCommits:
|
||||||
|
# cmd = 'git -C ' + f + ' pull -Xtheirs origin ' + branchName
|
||||||
|
# o, e = shellGitCheckout(cmd)
|
||||||
|
# o,e
|
||||||
|
# print(e)
|
||||||
|
#
|
||||||
|
# cmd = 'cp ' + join(DATA_PATH, 'travis_commits', commit,'.travis.yml')+ " " + f
|
||||||
|
# o, e = shellGitCheckout(cmd)
|
||||||
|
# o,e
|
||||||
|
# print(e)
|
||||||
|
# cmd = 'git -C ' + f + ' commit -a -m ' + "'travis'"
|
||||||
|
# o, e = shellGitCheckout(cmd)
|
||||||
|
# o,e
|
||||||
|
# print(e)
|
||||||
|
# else:
|
||||||
|
#
|
||||||
|
# cmd = 'git -C ' + f + ' pull -Xtheirs origin ' + branchName
|
||||||
|
# o, e = shellGitCheckout(cmd)
|
||||||
|
# o,e
|
||||||
|
# print(e)
|
||||||
|
|
||||||
|
cmd = 'git -C ' + f + ' push origin HEAD:'+branchName
|
||||||
|
o, e = shellGitCheckout(cmd)
|
||||||
|
o,e
|
||||||
|
print(e)
|
||||||
|
if e.startswith('error'):
|
||||||
|
print(e)
|
||||||
|
time.sleep(10)
|
||||||
|
|
||||||
|
# ######export patches
|
||||||
|
# res['path'] = res[['commit','parent']].apply(lambda x: [(i,x['commit']) for i in x['parent']] ,axis=1)
|
||||||
|
# paths = (list(itertools.chain.from_iterable(res.path.values.tolist())))
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# # res['pairs'] = res.apply(lambda x: (x['commit'], x['parent']) if x['parent'] != None else None, axis=1)
|
||||||
|
# # res['tuples'] = res.pairs.apply(lambda x: tuple(x))
|
||||||
|
# # col_combi = res.tuples.values.tolist()
|
||||||
|
# import networkx
|
||||||
|
# # #
|
||||||
|
# g = networkx.Graph(paths)
|
||||||
|
# cluster = []
|
||||||
|
# for subgraph in networkx.connected_component_subgraphs(g):
|
||||||
|
# logging.info('Cluster size %d', len(subgraph.nodes()))
|
||||||
|
# cluster.append(subgraph.nodes())
|
||||||
|
# cluster
|
||||||
|
# # p = networkx.shortest_path(g)
|
||||||
|
# # p
|
||||||
|
#
|
||||||
|
# parentDictionary= dict(networkx.dfs_successors(g, source=''))
|
||||||
|
# workList = []
|
||||||
|
# for i,c in enumerate(list(pairwise(list(networkx.dfs_preorder_nodes(g, source=''))))):
|
||||||
|
# parent,commit = c
|
||||||
|
# if parent =='':
|
||||||
|
# continue
|
||||||
|
# os.makedirs(join(DATA_PATH, 'tcl_patches_',str(i).zfill(5) +'_'+parent ),exist_ok=True)
|
||||||
|
#
|
||||||
|
# cmd = 'git -C ' + f + ' format-patch -M100% --text --full-index --binary -n '+ parent+'..'+commit +' -o ' + join(DATA_PATH, 'tcl_patches_',str(i).zfill(5) +'_'+parent)
|
||||||
|
# workList.append(cmd)
|
||||||
|
#
|
||||||
|
# parallelRun(shellGitCheckout,workList)
|
||||||
|
#
|
||||||
|
# ########end export patches
|
||||||
|
#
|
||||||
|
# # import matplotlib.pyplot as plt
|
||||||
|
# # networkx.draw(g, with_labels=True, font_weight='bold')
|
||||||
|
# # plt.subplot(122)
|
||||||
|
# # cluster.sort(key=len, reverse=True)
|
||||||
|
# # connectedCommits = [i for i in cluster[0]] #10280
|
||||||
|
# # res['connected']=res.commit.apply(lambda x: x in connectedCommits)
|
||||||
|
# #
|
||||||
|
# # selectedPatches = res[['commit','rowIndex', 'parent', 'connected', 'parentPos']]
|
||||||
|
# # selectedPatches.sort_values(by='parentPos', ascending=False, inplace=True)
|
||||||
|
# # selectedPatches[selectedPatches['connected'] == True]
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# #
|
||||||
|
# # # parentDict = res[['parent']].to_dict()
|
||||||
|
# # # pDict = {value: key for key, value in parentDict['parent'].items()}
|
||||||
|
# # # res['hasParent'] = res.commit.apply(lambda x: x in pDict)
|
||||||
|
# # ## find good commits
|
||||||
|
# # # orderDict = res[['commit']].to_dict()
|
||||||
|
# # #
|
||||||
|
# # # dict = {value: key for key, value in orderDict['commit'].items()}
|
||||||
|
# # #
|
||||||
|
# # # res['parentPos'] =res.parent.apply(lambda x: dict[x] if x in dict else None)
|
||||||
|
# # #
|
||||||
|
# # #
|
||||||
|
# # #
|
||||||
|
# # #
|
||||||
|
# # # def rowIndex(row):
|
||||||
|
# # # return row.name
|
||||||
|
# # #
|
||||||
|
# # #
|
||||||
|
# # # res['rowIndex'] = res.apply(rowIndex, axis=1)
|
||||||
|
# # #
|
||||||
|
# # # save_zipped_pickle(res, join(DATA_PATH, gitrepo + '.df'))
|
||||||
|
# # ## end find good commits
|
||||||
|
# # travisChanges = res[res.files.apply(lambda x: np.any([i == '.travis.yml' for i in x.keys()]))]
|
||||||
|
# # travisCommits = travisChanges.commit.values.tolist()
|
||||||
|
# #
|
||||||
|
# #
|
||||||
|
# # for i, commit in zip(selectedPatches['rowIndex'].values.tolist(),selectedPatches['commit'].values.tolist()):
|
||||||
|
# # print(i,commit)
|
||||||
|
# # if commit in travisCommits:
|
||||||
|
# # print()
|
||||||
|
# # patch = str(i).zfill(5) + "_" + commit
|
||||||
|
# # p = listdir(join(DATA_PATH, 'tcl_patches', patch))
|
||||||
|
# # if(len(p) == 0):
|
||||||
|
# # continue
|
||||||
|
# # if(len(p) > 1):
|
||||||
|
# # print('error')
|
||||||
|
# # cmd = 'git -C ' + f + ' am -q -3 --whitespace=nowarn ' + join(DATA_PATH, 'tcl_patches', patch, p[0])
|
||||||
|
# # o,e= shellGitCheckout(cmd)
|
||||||
|
# # # print(o)
|
||||||
|
# # # print(e)
|
||||||
|
# #
|
||||||
|
# # if len(e)> 0:
|
||||||
|
# # print(patch)
|
||||||
|
# #
|
||||||
|
# # cmd = 'git -C ' + f + ' push'
|
||||||
|
# # o, e = shellGitCheckout(cmd)
|
||||||
|
# # o,e
|
||||||
|
#
|
||||||
|
# patches = listdir(join(DATA_PATH, 'tcl_patches_'))
|
||||||
|
# patches.sort()
|
||||||
|
#
|
||||||
|
# for patch in patches:
|
||||||
|
# if patch == '.DS_Store':
|
||||||
|
# continue
|
||||||
|
# # if patch.split('_')[1] in travisCommits:
|
||||||
|
# # print()
|
||||||
|
# p = listdir(join(DATA_PATH, 'tcl_patches_', patch))
|
||||||
|
#
|
||||||
|
# if(len(p) == 0):
|
||||||
|
# continue
|
||||||
|
# p.sort()
|
||||||
|
# if(len(p) > 1):
|
||||||
|
# print('error')
|
||||||
|
#
|
||||||
|
# # if(p[0] == '0001-Initial-revision.patch'):
|
||||||
|
# # continue
|
||||||
|
# for actualPatch in p:
|
||||||
|
# cmd = 'git -C ' + f + ' am -q -3 --whitespace=nowarn ' + join(DATA_PATH, 'tcl_patches_', patch, actualPatch)
|
||||||
|
# # cmd = 'git -C ' + f + ' am -q -3 --whitespace=nowarn ' + join('/Users/anil.koyuncu/projects/datasets/test7', patch)
|
||||||
|
# o,e= shellGitCheckout(cmd)
|
||||||
|
# # print(o)
|
||||||
|
# # print(e)
|
||||||
|
#
|
||||||
|
# if len(e)> 0:
|
||||||
|
# print(patch)
|
||||||
|
#
|
||||||
|
# # cmd = 'git -C ' + f + ' push'
|
||||||
|
# # o, e = shellGitCheckout(cmd)
|
||||||
|
# # o,e
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# for i,v in zip(travisChanges.commit.index.tolist(),travisChanges.commit.values.tolist()):
|
||||||
|
# i,v
|
||||||
|
|
||||||
|
|
||||||
|
# '''
|
||||||
|
# git checkout master
|
||||||
|
# git branch -D start
|
||||||
|
# git checkout -f -b start c6a259aeeca4814a97cf6694814c63e74e4e18fa
|
||||||
|
# git checkout -f -b start 1cb8068b970358e7b0f47935a2636ca6ae8eceb6
|
||||||
|
# git gc --prune=now
|
||||||
|
# git push --set-upstream origin startTravis
|
||||||
|
|
||||||
|
#563 from test branch start
|
||||||
|
# '''
|
||||||
else:
|
else:
|
||||||
logging.error('Unknown job %s',job)
|
logging.error('Unknown job %s',job)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
+23
-12
@@ -19,6 +19,7 @@ def checkoutFiles(sha,shaOld, filePath,type, repo=None):
|
|||||||
folderDiff = join(type, 'DiffEntries')
|
folderDiff = join(type, 'DiffEntries')
|
||||||
folderPrev = join(type, 'prevFiles')
|
folderPrev = join(type, 'prevFiles')
|
||||||
folderRev = join( type, 'revFiles')
|
folderRev = join( type, 'revFiles')
|
||||||
|
folderPatch = join( type, 'patches')
|
||||||
if not os.path.exists(folderDiff):
|
if not os.path.exists(folderDiff):
|
||||||
os.mkdir(folderDiff)
|
os.mkdir(folderDiff)
|
||||||
|
|
||||||
@@ -27,14 +28,15 @@ def checkoutFiles(sha,shaOld, filePath,type, repo=None):
|
|||||||
|
|
||||||
if not os.path.exists(folderRev):
|
if not os.path.exists(folderRev):
|
||||||
os.mkdir(folderRev)
|
os.mkdir(folderRev)
|
||||||
|
if not os.path.exists(folderPatch):
|
||||||
|
os.mkdir(folderPatch)
|
||||||
# if repo is None:
|
# if repo is None:
|
||||||
# repo = join(REPO_PATH,repoName)
|
# repo = join(REPO_PATH,repoName)
|
||||||
|
|
||||||
|
|
||||||
savePath = filePath.replace('/','#')
|
savePath = filePath.replace('/','#')
|
||||||
|
|
||||||
if not isfile(folderDiff + '/' + sha + '_' + shaOld + '_' + savePath + '.txt'):
|
if not isfile(folderDiff + '/' + shaOld + '_' + sha + '_' + savePath + '.txt'):
|
||||||
|
|
||||||
cmd = 'git -C ' + repo + ' diff -U ' + shaOld + ':' + filePath + '..' + sha + ':' + filePath # + '> ' + folderDiff + '/' + sha + '_' + shaOld + '_' + savePath.replace('.java','.txt')
|
cmd = 'git -C ' + repo + ' diff -U ' + shaOld + ':' + filePath + '..' + sha + ':' + filePath # + '> ' + folderDiff + '/' + sha + '_' + shaOld + '_' + savePath.replace('.java','.txt')
|
||||||
|
|
||||||
@@ -52,21 +54,28 @@ def checkoutFiles(sha,shaOld, filePath,type, repo=None):
|
|||||||
numberOfHunks = re.findall('@@\s\-\d+,*\d*\s\+\d+,*\d*\s@@', matched)
|
numberOfHunks = re.findall('@@\s\-\d+,*\d*\s\+\d+,*\d*\s@@', matched)
|
||||||
if len(numberOfHunks) == 0:
|
if len(numberOfHunks) == 0:
|
||||||
return
|
return
|
||||||
diffFile = shaOld + '\n' + matched.replace(' @@ ', ' @@\n')
|
# diffFile = shaOld + '\n' + matched.replace(' @@ ', ' @@\n')
|
||||||
|
diffFile = matched.replace(' @@ ', ' @@\n')
|
||||||
|
|
||||||
with open(folderDiff + '/' + sha + '_' + shaOld + '_' + savePath + '.txt',
|
with open(folderDiff + '/' + shaOld + '_' + sha + '_' + savePath + '.txt',
|
||||||
'w') as writeFile:
|
'w') as writeFile:
|
||||||
writeFile.writelines(diffFile)
|
writeFile.writelines(diffFile)
|
||||||
|
|
||||||
|
# cmd = 'git -C ' + repo + ' format-patch -M100% --text --full-index --binary -n ' + shaOld + '..' + sha + ' -o ' + join(
|
||||||
|
# folderPatch, sha +'_'+str(len(numberOfHunks))+'_' +'.patch')
|
||||||
|
cmd = 'git -C ' + repo + ' diff -U --patch ' + shaOld + ':' + filePath + '..' + sha + ':' + filePath + ' > ' + join(
|
||||||
|
folderPatch, shaOld + '_' + sha + '_' + savePath + '.patch' + '_'+str(len(numberOfHunks)))
|
||||||
|
|
||||||
|
o, errors = shellGitCheckout(cmd, enc='latin1')
|
||||||
|
|
||||||
|
|
||||||
cmd = 'git -C ' + repo + ' show ' + sha + ':' + filePath + '> ' + folderRev + '/' + sha + '_' + shaOld + '_' +savePath
|
cmd = 'git -C ' + repo + ' show ' + sha + ':' + filePath + '> ' + folderRev + '/' + shaOld + '_' + sha + '_' +savePath
|
||||||
|
|
||||||
if errors:
|
if errors:
|
||||||
# print(errors)
|
# print(errors)
|
||||||
raise FileNotFoundError
|
raise FileNotFoundError
|
||||||
o,errors= shellGitCheckout(cmd,enc='latin1')
|
o,errors= shellGitCheckout(cmd,enc='latin1')
|
||||||
cmd = 'git -C ' + repo + ' show ' + shaOld + ':' + filePath + '> ' + folderPrev + '/' + 'prev_'+sha + '_' + shaOld + '_' +savePath
|
cmd = 'git -C ' + repo + ' show ' + shaOld + ':' + filePath + '> ' + folderPrev + '/' + 'prev_'+shaOld + '_' + sha + '_' +savePath
|
||||||
if errors:
|
if errors:
|
||||||
# print(errors)
|
# print(errors)
|
||||||
raise FileNotFoundError
|
raise FileNotFoundError
|
||||||
@@ -77,12 +86,12 @@ def checkoutFiles(sha,shaOld, filePath,type, repo=None):
|
|||||||
raise FileNotFoundError
|
raise FileNotFoundError
|
||||||
|
|
||||||
except FileNotFoundError as fnfe:
|
except FileNotFoundError as fnfe:
|
||||||
if isfile(folderRev + '/' + sha + '_' + shaOld + '_' +savePath):
|
if isfile(folderRev + '/' + shaOld + '_' + sha + '_' +savePath):
|
||||||
os.remove(folderRev + '/' + sha + '_' + shaOld + '_' +savePath)
|
os.remove(folderRev + '/' + shaOld + '_' + sha + '_' +savePath)
|
||||||
if isfile(folderPrev + '/' + 'prev_'+sha + '_' + shaOld + '_' +savePath):
|
if isfile(folderPrev + '/' + 'prev_'+shaOld + '_' + sha + '_' +savePath):
|
||||||
os.remove(folderPrev + '/' + 'prev_'+sha + '_' + shaOld + '_' +savePath)
|
os.remove(folderPrev + '/' + 'prev_'+shaOld + '_' + sha + '_' +savePath)
|
||||||
if isfile(folderDiff + '/' + sha + '_' + shaOld + '_' + savePath.replace('.java','.txt')):
|
if isfile(folderDiff + '/' + shaOld + '_' + sha + '_' + savePath.replace('.java','.txt')):
|
||||||
os.remove(folderDiff + '/' + sha + '_' + shaOld + '_' + savePath.replace('.java','.txt'))
|
os.remove(folderDiff + '/' + shaOld + '_' + sha + '_' + savePath.replace('.java','.txt'))
|
||||||
# print(fnfe)
|
# print(fnfe)
|
||||||
# raise Exception(fnfe)
|
# raise Exception(fnfe)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -283,6 +292,8 @@ def core():
|
|||||||
print(repo)
|
print(repo)
|
||||||
cmd = 'git config --global http.postBuffer 157286400'
|
cmd = 'git config --global http.postBuffer 157286400'
|
||||||
shellCallTemplate(cmd)
|
shellCallTemplate(cmd)
|
||||||
|
cmd = 'git config --global diff.renamelimit 0'
|
||||||
|
shellCallTemplate(cmd)
|
||||||
cmd = 'git -C ' + DATASET_PATH + ' clone ' + src
|
cmd = 'git -C ' + DATASET_PATH + ' clone ' + src
|
||||||
shellCallTemplate(cmd)
|
shellCallTemplate(cmd)
|
||||||
logging.info(repo)
|
logging.info(repo)
|
||||||
|
|||||||
@@ -118,10 +118,10 @@ def patchCore():
|
|||||||
manybugs = [i for i in manybugs if i in sosbugs]
|
manybugs = [i for i in manybugs if i in sosbugs]
|
||||||
spfiles = listdir(join(DATASET,'cocci'))
|
spfiles = listdir(join(DATASET,'cocci'))
|
||||||
|
|
||||||
from sprinferIndex import filterPatterns
|
# from sprinferIndex import filterPatterns
|
||||||
filteredPattern = filterPatterns()
|
# filteredPattern = filterPatterns()
|
||||||
|
|
||||||
spfiles = [i for i in spfiles if i in filteredPattern]
|
# spfiles = [i for i in spfiles if i in filteredPattern]
|
||||||
workList = []
|
workList = []
|
||||||
for manybug in manybugs:
|
for manybug in manybugs:
|
||||||
if manybug == '.DS_Store':
|
if manybug == '.DS_Store':
|
||||||
|
|||||||
@@ -285,7 +285,7 @@ def patch_validate():
|
|||||||
if b== '.DS_Store':
|
if b== '.DS_Store':
|
||||||
continue
|
continue
|
||||||
t = b, port
|
t = b, port
|
||||||
if (b.startswith('manybugs:php:')):
|
if (b.startswith('manybugs:')):
|
||||||
bugList.append(t)
|
bugList.append(t)
|
||||||
if port == 6300:
|
if port == 6300:
|
||||||
port = 6000
|
port = 6000
|
||||||
@@ -300,6 +300,7 @@ def patch_validate():
|
|||||||
# parallelRun(findTests,bugList,max_workers=1)
|
# parallelRun(findTests,bugList,max_workers=1)
|
||||||
results = parallelRunMerge(validateCore, bugList)
|
results = parallelRunMerge(validateCore, bugList)
|
||||||
# #
|
# #
|
||||||
|
print(results)
|
||||||
with open(join(DATA_PATH, 'mayBugsValidateNew'), 'w',
|
with open(join(DATA_PATH, 'mayBugsValidateNew'), 'w',
|
||||||
encoding='utf-8') as writeFile:
|
encoding='utf-8') as writeFile:
|
||||||
# if levelPatch == 0:
|
# if levelPatch == 0:
|
||||||
|
|||||||
+29
-11
@@ -33,7 +33,7 @@ def indexCore():
|
|||||||
# singleHunkedFiles = sDF.fileName.unique().tolist()
|
# singleHunkedFiles = sDF.fileName.unique().tolist()
|
||||||
# singleHunkedFiles = [i.replace('.txt', '') for i in singleHunkedFiles]
|
# singleHunkedFiles = [i.replace('.txt', '') for i in singleHunkedFiles]
|
||||||
|
|
||||||
clusterPath = join(DATA_PATH, 'shapes')
|
clusterPath = join(DATA_PATH, 'actions')
|
||||||
roots = listdir(clusterPath)
|
roots = listdir(clusterPath)
|
||||||
roots = [i for i in roots if not (i.startswith('.') or i.endswith('.pickle'))]
|
roots = [i for i in roots if not (i.startswith('.') or i.endswith('.pickle'))]
|
||||||
|
|
||||||
@@ -186,32 +186,48 @@ def divideCoccis():
|
|||||||
iFile.writelines(idx[t[1]:])
|
iFile.writelines(idx[t[1]:])
|
||||||
os.remove(join(SPINFER_INDEX_PATH, 'cocci', cocci))
|
os.remove(join(SPINFER_INDEX_PATH, 'cocci', cocci))
|
||||||
|
|
||||||
|
def getFreqPatterns():
|
||||||
|
patterns = load_zipped_pickle(join(DATA_PATH, 'allCocciPatterns.pickle'))
|
||||||
|
freqs = patterns.pattern.value_counts().to_dict()
|
||||||
|
|
||||||
|
allPatterns = patterns.cid.values.tolist()
|
||||||
|
uniquePatterns = patterns.drop_duplicates(subset=['pattern']).cid.values.tolist()
|
||||||
|
|
||||||
|
uniquePatterns = patterns[patterns.cid.isin(uniquePatterns)]
|
||||||
|
|
||||||
|
uniquePatterns['newFreq'] = uniquePatterns.pattern.apply(lambda x: freqs[x])
|
||||||
|
|
||||||
|
re.search(r"// Recall:(.*), Precision:(.*), Matching recall:(.*)")
|
||||||
|
|
||||||
|
|
||||||
def removeDuplicates():
|
def removeDuplicates():
|
||||||
commentPattern = r"(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|(//.*)"
|
commentPattern = r"(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|(//.*)"
|
||||||
coccis =os.listdir(join(SPINFER_INDEX_PATH, 'cocci'))
|
coccis =os.listdir(join(SPINFER_INDEX_PATH, 'cocci'))
|
||||||
cocciPatterns = pd.DataFrame(columns=['cid', 'pattern','inferedFrom'])
|
cocciPatterns = pd.DataFrame(columns=['cid', 'pattern','inferedFrom','recall','precision','matchingRecall'])
|
||||||
ind = 0
|
ind = 0
|
||||||
for cocci in coccis:
|
for cocci in coccis:
|
||||||
with open(join(SPINFER_INDEX_PATH, 'cocci', cocci), 'r') as iFile:
|
with open(join(SPINFER_INDEX_PATH, 'cocci', cocci), 'r') as iFile:
|
||||||
idx = iFile.read()
|
idx = iFile.read()
|
||||||
idx
|
idx
|
||||||
inferedFrom = re.search(r"// Infered from:(.*)\n",idx).groups()
|
inferedFrom = re.search(r"// Infered from:(.*)\n",idx).groups()
|
||||||
|
recall,precision, matchingRecall = re.search(r"// Recall:(.*), Precision:(.*), Matching recall:(.*)",idx).groups()
|
||||||
pattern = re.sub(commentPattern, '', idx, re.DOTALL)
|
pattern = re.sub(commentPattern, '', idx, re.DOTALL)
|
||||||
cocciPatterns.loc[ind] = [cocci,pattern,inferedFrom]
|
cocciPatterns.loc[ind] = [cocci,pattern,inferedFrom,recall.strip(),precision.strip(),matchingRecall.strip()]
|
||||||
ind = ind +1
|
ind = ind +1
|
||||||
cocciPatterns['iFiles'] = cocciPatterns.inferedFrom.apply(lambda x: getInferred(x[0]))
|
cocciPatterns['iFiles'] = cocciPatterns.inferedFrom.apply(lambda x: getInferred(x[0]))
|
||||||
|
|
||||||
cocciPatterns['freq'] = cocciPatterns.iFiles.apply(lambda x: len(x))
|
cocciPatterns['freq'] = cocciPatterns.iFiles.apply(lambda x: len(x))
|
||||||
cocciPatterns['project'] = cocciPatterns.iFiles.apply(lambda x: list(set([i.split('/{')[0].replace('(','') for i in x])))
|
cocciPatterns['project'] = cocciPatterns.iFiles.apply(lambda x: list(set([i.split('/{')[0].replace('(','') for i in x])))
|
||||||
cocciPatterns.sort_values(by='freq', inplace=True, ascending=False)
|
cocciPatterns.sort_values(by='freq', inplace=True, ascending=False)
|
||||||
save_zipped_pickle(cocciPatterns,join(DATA_PATH,'allCocciPatterns.pickle'))
|
# save_zipped_pickle(cocciPatterns,join(DATA_PATH,'allCocciPatterns.pickle'))
|
||||||
allPatterns = cocciPatterns.cid.values.tolist()
|
save_zipped_pickle(cocciPatterns,join(DATA_PATH,'allCocciPatterns2.pickle'))
|
||||||
uniquePatterns = cocciPatterns.drop_duplicates(subset=['pattern']).cid.values.tolist()
|
# allPatterns = cocciPatterns.cid.values.tolist()
|
||||||
toRemove = list(set(allPatterns).difference(uniquePatterns))
|
# uniquePatterns = cocciPatterns.drop_duplicates(subset=['pattern']).cid.values.tolist()
|
||||||
print(toRemove)
|
# toRemove = list(set(allPatterns).difference(uniquePatterns))
|
||||||
for p in toRemove:
|
# print(toRemove)
|
||||||
os.remove(join(SPINFER_INDEX_PATH, 'cocci', p))
|
# for p in toRemove:
|
||||||
print(len(uniquePatterns))
|
# os.remove(join(SPINFER_INDEX_PATH, 'cocci', p))
|
||||||
|
# print(len(uniquePatterns))
|
||||||
|
|
||||||
|
|
||||||
def filterPatterns():
|
def filterPatterns():
|
||||||
@@ -322,6 +338,8 @@ def patchCoreIntro():
|
|||||||
|
|
||||||
filterList =[]
|
filterList =[]
|
||||||
for manybug in manybugs:
|
for manybug in manybugs:
|
||||||
|
if manybug == '.DS_Store':
|
||||||
|
continue
|
||||||
# files = listdir(join(join(DATA_PATH,"manybugs",manybug,'diffs')))
|
# files = listdir(join(join(DATA_PATH,"manybugs",manybug,'diffs')))
|
||||||
if os.path.exists(join(DATA_PATH, "introclass", manybug, 'patches')):
|
if os.path.exists(join(DATA_PATH, "introclass", manybug, 'patches')):
|
||||||
shutil.rmtree(join(DATA_PATH, "introclass", manybug, 'patches'))
|
shutil.rmtree(join(DATA_PATH, "introclass", manybug, 'patches'))
|
||||||
|
|||||||
+10
-2
@@ -2,6 +2,8 @@ from common.commons import *
|
|||||||
DATA_PATH = os.environ["DATA_PATH"]
|
DATA_PATH = os.environ["DATA_PATH"]
|
||||||
PROJECT_TYPE = os.environ["PROJECT_TYPE"]
|
PROJECT_TYPE = os.environ["PROJECT_TYPE"]
|
||||||
REDIS_PORT = os.environ["REDIS_PORT"]
|
REDIS_PORT = os.environ["REDIS_PORT"]
|
||||||
|
ROOT = os.environ["ROOT_DIR"]
|
||||||
|
INNER_DATA_PATH = join(ROOT,'data')
|
||||||
|
|
||||||
def statsNormal(isFixminer=True):
|
def statsNormal(isFixminer=True):
|
||||||
# tokens = join(DATA_PATH, 'tokens')
|
# tokens = join(DATA_PATH, 'tokens')
|
||||||
@@ -226,6 +228,7 @@ def stats(type,isFixminer=True):
|
|||||||
if shape.startswith('.'):
|
if shape.startswith('.'):
|
||||||
continue
|
continue
|
||||||
sizes = listdir(join(shapesPath, shape))
|
sizes = listdir(join(shapesPath, shape))
|
||||||
|
logging.debug(shape + ":" + str(len(sizes)))
|
||||||
|
|
||||||
for size in sizes:
|
for size in sizes:
|
||||||
if size.startswith('.'):
|
if size.startswith('.'):
|
||||||
@@ -453,11 +456,16 @@ javaAst = ["AnonymousClassDeclaration", "ArrayAccess", "ArrayCreation", "ArrayIn
|
|||||||
"LambdaExpression", "IntersectionType", "NameQualifiedType", "CreationReference", "ExpressionMethodReference",
|
"LambdaExpression", "IntersectionType", "NameQualifiedType", "CreationReference", "ExpressionMethodReference",
|
||||||
"SuperMethodReference", "TypeMethodReference", "MethodName", "Operator", "New", "Instanceof"]
|
"SuperMethodReference", "TypeMethodReference", "MethodName", "Operator", "New", "Instanceof"]
|
||||||
|
|
||||||
cAst = ["unit","comment","literal","operator","modifier","name","type","condition","block","index","decltype","typename","atomic","assert","generic_selection","selector","association_list","association","expr_stmt","expr","decl_stmt","decl","init","range","break","continue","goto","label","typedef","asm","macro","enum","enum_decl","if","ternary","then","else","elseif","while","typeof","do","switch","case","default","for","foreach","control","incr","function","function_decl","lambda","specifier","return","call","sizeof","parameter_list","parameter","krparameter_list","krparameter","argument_list","argument","capture","struct","struct_decl","union","union_decl","class","class_decl","public","private","protected","signals","forever","emit","member_init_list","constructor","constructor_decl","destructor","destructor_decl","super","friend","extern","namespace","using","try","catch","finally","throw","throws","noexcept","template","directive","file","number","include","define","undef","line","ifdef","ifndef","elif","endif","pragma","error","warning","value","empty","region","endregion","import","marker","parse","mode","lock","fixed","checked","unchecked","unsafe","using_stmt","delegate","event","constraint","extends","implements","package","synchronized","interface","interface_decl","annotation_defn","static","attribute","target","linq","from","select","where","let","orderby","group","join","in","on","equals","by","into","escape","annotation","alignas","alignof","typeid","ref_qualifier","receiver","message","protocol_list","category","protocol","required","optional","property","attribute_list","synthesize","dynamic","encode","autoreleasepool","compatibility_alias","protocol_decl","cast","position","clause","empty_stmt"]
|
# cAst = ["unit","comment","literal","operator","modifier","name","type","condition","block","index","decltype","typename","atomic","assert","generic_selection","selector","association_list","association","expr_stmt","expr","decl_stmt","decl","init","range","break","continue","goto","label","typedef","asm","macro","enum","enum_decl","if","ternary","then","else","elseif","while","typeof","do","switch","case","default","for","foreach","control","incr","function","function_decl","lambda","specifier","return","call","sizeof","parameter_list","parameter","krparameter_list","krparameter","argument_list","argument","capture","struct","struct_decl","union","union_decl","class","class_decl","public","private","protected","signals","forever","emit","member_init_list","constructor","constructor_decl","destructor","destructor_decl","super","friend","extern","namespace","using","try","catch","finally","throw","throws","noexcept","template","directive","file","number","include","define","undef","line","ifdef","ifndef","elif","endif","pragma","error","warning","value","empty","region","endregion","import","marker","parse","mode","lock","fixed","checked","unchecked","unsafe","using_stmt","delegate","event","constraint","extends","implements","package","synchronized","interface","interface_decl","annotation_defn","static","attribute","target","linq","from","select","where","let","orderby","group","join","in","on","equals","by","into","escape","annotation","alignas","alignof","typeid","ref_qualifier","receiver","message","protocol_list","category","protocol","required","optional","property","attribute_list","synthesize","dynamic","encode","autoreleasepool","compatibility_alias","protocol_decl","cast","position","clause","empty_stmt"]
|
||||||
|
cAst = ["unit" ,"comment:block", "comment:line", "literal:string", "literal:char", "literal:number", "literal:boolean", "literal:null", "literal:complex", "operator", "modifier", "name", "type", "type:prev", "block", "block_content", "block:pseudo", "index", "decltype", "typename", "atomic", "assert:static", "generic_selection", "selector", "association_list", "association", "expr_stmt", "expr", "decl_stmt", "decl", "init", "range", "break", "continue", "goto", "label", "typedef", "asm", "macro", "enum", "enum_decl", "if_stmt", "if", "ternary", "then", "else", "if:elseif", "while", "typeof", "do", "switch", "case", "default", "for", "foreach", "control", "condition", "incr", "function", "function_decl", "lambda", "specifier", "return", "call", "sizeof", "parameter_list", "parameter", "krparameter_list", "krparameter", "argument_list", "argument", "capture", "parameter_list:pseudo", "parameter_list:indexer", "struct", "struct_decl", "union", "union_decl", "class", "class_decl", "public", "public:default", "private", "private:default", "protected", "protected:default", "signals", "forever", "emit", "member_init_list", "constructor", "constructor_decl", "destructor", "destructor_decl", "super_list", "super", "friend", "extern", "namespace", "using", "try", "catch", "finally", "throw", "throws", "noexcept", "template", "argument_list:generic", "parameter_list:generic", "directive", "file", "number", "literal", "include", "define", "undef", "line", "cpp:if", "ifdef", "ifndef", "cpp:else", "elif", "endif", "cpp:then", "pragma", "error", "warning", "value", "empty", "marker", "region", "endregion", "import", "parse", "mode", "lock", "fixed", "checked", "unchecked", "unsafe", "using_stmt", "delegate", "event", "constraint", "extends", "implements", "package", "assert", "synchronized", "interface", "interface_decl", "annotation_defn", "static", "attribute", "target", "linq", "from", "select", "where", "let", "orderby", "group", "join", "in", "on", "equals", "by", "into", "escape", "annotation", "alignas", "alignof", "typeid", "sizeof:pack", "enum:class", "enum_decl:class", "function:operator", "function_decl:operator", "ref_qualifier", "receiver", "message", "protocol_list", "category", "clause"]
|
||||||
|
|
||||||
def exportAbstractPatterns():
|
def exportAbstractPatterns():
|
||||||
|
dbDir = join(INNER_DATA_PATH, 'redis')
|
||||||
|
|
||||||
|
portInner = REDIS_PORT
|
||||||
|
startDB(dbDir, portInner, PROJECT_TYPE)
|
||||||
clusterStats,df = stats('actions')
|
clusterStats,df = stats('actions')
|
||||||
|
logging.debug(len(clusterStats))
|
||||||
port = REDIS_PORT
|
port = REDIS_PORT
|
||||||
import redis
|
import redis
|
||||||
redis_db = redis.StrictRedis(host="localhost", port=port, db=0)
|
redis_db = redis.StrictRedis(host="localhost", port=port, db=0)
|
||||||
|
|||||||
@@ -5,13 +5,14 @@ import signal
|
|||||||
|
|
||||||
# from common.commons import shellGitCheckout
|
# from common.commons import shellGitCheckout
|
||||||
DATA_PATH = os.environ["DATA_PATH"]
|
DATA_PATH = os.environ["DATA_PATH"]
|
||||||
|
ROOT_DIR = os.environ["ROOT_DIR"]
|
||||||
introClassFile = join(DATA_PATH,'introClassData.txt')
|
introClassFile = join(DATA_PATH,'introClassData.txt')
|
||||||
|
|
||||||
def testCore(t):
|
def testCore(t):
|
||||||
bugName, port = t
|
bugName, port = t
|
||||||
container = None
|
container = None
|
||||||
# with bugzoo.server.ephemeral(port=port, verbose=False,bugzooPath="/Users/anil.koyuncu/anaconda3/envs/python36/bin/bugzood", timeout_connection=3000) as client:
|
# with bugzoo.server.ephemeral(port=port, verbose=False,bugzooPath="/Users/anil.koyuncu/anaconda3/envs/python36/bin/bugzood", timeout_connection=3000) as client:
|
||||||
cmd = 'bash {} {}'.format(join(DATA_PATH,'startBugzoo.sh'),port)
|
cmd = 'bash {} {}'.format(join(ROOT_DIR,'data','startBugzoo.sh'),port)
|
||||||
|
|
||||||
with Popen(cmd, stdout=PIPE, stderr=PIPE, shell=True) as process:
|
with Popen(cmd, stdout=PIPE, stderr=PIPE, shell=True) as process:
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import os
|
|||||||
from common.commons import *
|
from common.commons import *
|
||||||
import signal
|
import signal
|
||||||
DATA_PATH = os.environ["DATA_PATH"]
|
DATA_PATH = os.environ["DATA_PATH"]
|
||||||
|
ROOT_DIR = os.environ["ROOT_DIR"]
|
||||||
|
|
||||||
BUGDIR = join(DATA_PATH,'manybugs')
|
BUGDIR = join(DATA_PATH,'manybugs')
|
||||||
PATCHES_DIR = join(DATA_PATH,'manybugs_sos')
|
PATCHES_DIR = join(DATA_PATH,'manybugs_sos')
|
||||||
@@ -17,7 +18,8 @@ def patch_validate(t):
|
|||||||
# bug = client.bugs['introclass:checksum:08c7ea:006']
|
# bug = client.bugs['introclass:checksum:08c7ea:006']
|
||||||
# client,process = getClient(port)
|
# client,process = getClient(port)
|
||||||
container = None
|
container = None
|
||||||
cmd = 'bash {} {}'.format(join(DATA_PATH, 'startBugzoo.sh'), port)
|
|
||||||
|
cmd = 'bash {} {}'.format(join(ROOT_DIR, 'data', 'startBugzoo.sh'), port)
|
||||||
|
|
||||||
with Popen(cmd, stdout=PIPE, stderr=PIPE, shell=True) as process:
|
with Popen(cmd, stdout=PIPE, stderr=PIPE, shell=True) as process:
|
||||||
# o,e = shellGitCheckout(cmd)
|
# o,e = shellGitCheckout(cmd)
|
||||||
|
|||||||
Reference in New Issue
Block a user