Olivier Sentieys

248 papers A* 4A 22B 13C 26Misc 12Journal 68Unranked 103
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Sohaib Errabii, Olivier Sentieys, Marcello Traiola
2026 J jnl
ACM Trans. Embed. Comput. Syst.
Hengyan Song, Lei Mo, Tamim M. Al-Hasan, Angeliki Kritikakou, Xiaojun Zhai, Shibo He, Olivier Sentieys
2025 C conf
ARITH
Rémi Garcia, Léo Pradels, Silviu-Ioan Filip, Olivier Sentieys
2025 J jnl
IEEE Trans. Emerg. Top. Comput.
Fernando Fernandes dos Santos, Niccolò Cavagnero, Marco Ciccone, Giuseppe Averta, Angeliki Kritikakou, Olivier Sentieys, Paolo Rech, Tatiana Tommasi
2025 J jnl
CoRR
Sohaib Errabii, Olivier Sentieys, Marcello Traiola
2025 A conf
DATE
Sami Ben Ali, Silviu-Ioan Filip, Olivier Sentieys, Guy G. Lemieux
2025 A conf
ICCAD
Vishesh Mishra, Marcello Traiola, Angeliki Kritikakou, Olivier Sentieys, Urbi Chatterjee
2025 C conf
IOLTS
Guillaume Lomet, Rubén Salvador, Brice Colombier, Vincent Grosso, Olivier Sentieys, Cédric Killian
2025 J jnl
CoRR
Guillaume Lomet, Rubén Salvador, Brice Colombier, Vincent Grosso, Olivier Sentieys, Cédric Killian
2024 J jnl
CoRR
Benoît Coqueret, Mathieu Carbone, Olivier Sentieys, Gabriel Zaid
2024 J jnl
IACR Cryptol. ePrint Arch.
Benoît Coqueret, Mathieu Carbone, Olivier Sentieys, Gabriel Zaid
2024 C conf
ISCAS
Léo De La Fuente, Jean-Frédéric Christmann, Manuel Pezzin, Matthias Remars, Olivier Sentieys
2024 A conf
DATE
Sami Ben Ali, Silviu-Ioan Filip, Olivier Sentieys
2024 J jnl
CoRR
Sami Ben Ali, Silviu-Ioan Filip, Olivier Sentieys
2024 conf
AICAS
Cédric Gernigon, Silviu-Ioan Filip, Olivier Sentieys, Clément Coggiola, Mickael Bruno
2024 J jnl
CoRR
Cédric Gernigon, Silviu-Ioan Filip, Olivier Sentieys, Clément Coggiola, Mickael Bruno
2024 conf
COSADE
Amélie Marotta, Ronan Lashermes, Guillaume Bouffard, Olivier Sentieys, Rachid Dafali
2024 J jnl
ACM Trans. Embed. Comput. Syst.
Prachi Kashikar, Olivier Sentieys, Sharad Sinha
2024 A* conf
DAC
Lucas Roquet, Fernando Fernandes dos Santos, Paolo Rech, Marcello Traiola, Olivier Sentieys, Angeliki Kritikakou
2024 Misc conf
CASES
Marcello Traiola, Angeliki Kritikakou, Silviu-Ioan Filip, Olivier Sentieys
2024 conf
AICAS
Léo Pradels, Silviu-Ioan Filip, Olivier Sentieys, Daniel Chillet, Thibaut Le Calloch
2024 J jnl
ACM Trans. Embed. Comput. Syst.
Pavitra Prakash Bhade, Joseph Paturel, Olivier Sentieys, Sharad Sinha
2024 B conf
ETS
Dennis Gnad, Martin Gotthard, Jonas Krautter, Angeliki Kritikakou, Vincent Meyers, Paolo Rech, Josie E. Rodriguez Condia, Annachiara Ruospo, Ernesto Sánchez, Fernando Fernandes dos Santos, Olivier Sentieys, Mehdi B. Tahoori, Russell Tessier, Marcello Traiola
2023 A conf
DATE
Marcello Traiola, Angeliki Kritikakou, Olivier Sentieys
2023 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Xinmei Li, Lei Mo, Angeliki Kritikakou, Olivier Sentieys
2023 conf
DSN-S
Pegdwende Romaric Nikiema, Angeliki Kritikakou, Marcello Traiola, Olivier Sentieys
2023 B conf
ECRTS
Pegdwende Romaric Nikiema, Angeliki Kritikakou, Marcello Traiola, Olivier Sentieys
2023 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Prachi Kashikar, Olivier Sentieys, Sharad Sinha
2023 J jnl
CoRR
Cédric Gernigon, Silviu-Ioan Filip, Olivier Sentieys, Clément Coggiola, Mickael Bruno
2023 A conf
DATE
Van-Phu Ha, Olivier Sentieys
2023 conf
AISec@CCS
Benoît Coqueret, Mathieu Carbone, Olivier Sentieys, Gabriel Zaid
2023 J jnl
CoRR
Benoît Coqueret, Mathieu Carbone, Olivier Sentieys, Gabriel Zaid
2023 B conf
ETS
Marcello Traiola, Angeliki Kritikakou, Olivier Sentieys
2022 J jnl
CoRR
Etienne Dupuis, Silviu-Ioan Filip, Olivier Sentieys, David Novo, Ian O'Connor, Alberto Bosio
2022 J jnl
CoRR
Fernando Fernandes dos Santos, Angeliki Kritikakou, Josie Esteban Rodriguez Condia, Juan-David Guerrero-Balaguera, Matteo Sonza Reorda, Olivier Sentieys, Paolo Rech
2022 J jnl
CoRR
Olivier Sentieys, Daniel Ménard
2022 conf
CVPR Workshops
Thibault Allenet, David Briand, Olivier Bichler, Olivier Sentieys
2022 J jnl
Microprocess. Microsystems
Rafail Psiakis, Angeliki Kritikakou, Olivier Sentieys
2022 conf
ISVLSI
Fernando Fernandes dos Santos, Paolo Rech, Angeliki Kritikakou, Olivier Sentieys
2022 C conf
IOLTS
Fernando Fernandes dos Santos, Angeliki Kritikakou, Olivier Sentieys
2022 J jnl
CoRR
Fernando Fernandes dos Santos, Angeliki Kritikakou, Olivier Sentieys
2022 A conf
DATE
Angeliki Kritikakou, Olivier Sentieys, Guillaume Hubert, Youri Helen, Jean-Francois Coulon, Patrice Deroux-Dauphin
2022 C conf
IOLTS
Angeliki Kritikakou, Panagiota Nikolaou, Ivan Rodriguez-Ferrandez, Joseph Paturel, Leonidas Kosmidis, Maria K. Michael, Olivier Sentieys, David Steenari
2022 conf
FPT
Mariko Tatsumi, Silviu-Ioan Filip, Caroline White, Olivier Sentieys, Guy Lemieux
2021 C conf
DDECS
Olivier Sentieys, Silviu-Ioan Filip, David Briand, David Novo, Etienne Dupuis, Ian O'Connor, Alberto Bosio
2021 J jnl
ACM Comput. Surv.
Angeliki Kritikakou, Rafail Psiakis, Francky Catthoor, Olivier Sentieys
2021 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Davide Pala, Ivan Miro-Panades, Olivier Sentieys
2021 J jnl
CoRR
Davide Pala, Ivan Miro-Panades, Olivier Sentieys
2021 A conf
DATE
Van-Phu Ha, Olivier Sentieys
2021 J jnl
IEEE Internet Things J.
Lei Mo, Angeliki Kritikakou, Olivier Sentieys, Xianghui Cao
2020 J jnl
Microprocess. Microsystems
Baptiste Roux, Matthieu Gautier, Olivier Sentieys, Jean-Philippe Delahaye
2020 conf
ISVLSI
Joseph Paturel, Angeliki Kritikakou, Olivier Sentieys
2020 A conf
DATE
Van-Phu Ha, Tomofumi Yuki, Olivier Sentieys
2019 A conf
DATE
Mael Gueguen, Olivier Sentieys, Alexandre Termier
2019 conf
ISVLSI
Joel Ortiz Sosa, Olivier Sentieys, Christian Roland
2019 A conf
DATE
Lei Mo, Angeliki Kritikakou, Olivier Sentieys
2019 conf
ASAP
Oumaima Matoussi, Yves Durand, Olivier Sentieys, Anca Molnos
2019 A conf
DATE
Rafail Psiakis, Angeliki Kritikakou, Olivier Sentieys
2019 B conf
SAS
Nicolas Roux, Baptiste Vrigneau, Olivier Sentieys
2019 conf
NOCS
Joel Ortiz Sosa, Olivier Sentieys, Christian Roland, Cédric Killian
2019 conf
DASIP
Rafail Psiakis, Angeliki Kritikakou, Olivier Sentieys, Emmanuel Casseau
2019 A conf
ICCAD
Simon Rokicki, Davide Pala, Joseph Paturel, Olivier Sentieys
2018 conf
NOCS
Joel Ortiz Sosa, Olivier Sentieys, Christian Roland
2018 J jnl
IEEE J. Emerg. Sel. Topics Circuits Syst.
Lei Mo, Angeliki Kritikakou, Olivier Sentieys
2018 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Lei Mo, Angeliki Kritikakou, Olivier Sentieys
2018 J jnl
Photonic Netw. Commun.
Trung-Hien Nguyen, Pascal Scalart, Mathilde Gay, Laurent Bramerie, Christophe Peucheret, Fausto Gomez-Agis, Olivier Sentieys, Jean-Claude Simon, Michel Joindot
2018 J jnl
ACM J. Emerg. Technol. Comput. Syst.
Jiating Luo, Cédric Killian, Sébastien Le Beux, Daniel Chillet, Olivier Sentieys, Ian O'Connor
2018 conf
DCIS
Jiating Luo, Van-Dung Pham, Cédric Killian, Daniel Chillet, Ian O'Connor, Olivier Sentieys, Sébastien Le Beux
2018 C conf
ISCAS
Antoine Courtay, Mickaël Le Gentil, Olivier Berder, Arnaud Carer, Pascal Scalart, Olivier Sentieys
2017 J jnl
JOCN
Trung-Hien Nguyen, Pascal Scalart, Mathilde Gay, Laurent Bramerie, Olivier Sentieys, Jean-Claude Simon, Christophe Peucheret, Michel Joindot
2017 conf
SiPS
Benjamin Barrois, Olivier Sentieys
2017 C conf
ICCD
Lei Mo, Angeliki Kritikakou, Olivier Sentieys
2017 A* conf
DAC
Cédric Killian, Daniel Chillet, Sébastien Le Beux, Van-Dung Pham, Olivier Sentieys, Ian O'Connor
2017 conf
ICECS
Atef Dorai, Olivier Sentieys, Hélène Dubois
2017 Misc conf
FCCM
Baptiste Roux, Matthieu Gautier, Olivier Sentieys, Jean-Philippe Delahaye
2017 conf
PARCO
Stefano Cherubin, Giovanni Agosta, Imane Lasri, Erven Rohou, Olivier Sentieys
2017 conf
ISVLSI
Rafail Psiakis, Angeliki Kritikakou, Olivier Sentieys
2017 A conf
DATE
Jiating Luo, A. Elantably, Van-Dung Pham, Cédric Killian, Daniel Chillet, Sébastien Le Beux, Olivier Sentieys, Ian O'Connor
2017 A conf
DATE
Rengarajan Ragavan, Benjamin Barrois, Cédric Killian, Olivier Sentieys
2017 conf
NEWCAS
Rafail Psiakis, Angeliki Kritikakou, Olivier Sentieys
2017 C conf
ISCAS
Rahul Kumar Budhwani, Rengarajan Ragavan, Olivier Sentieys
2017 A conf
DATE
Benjamin Barrois, Olivier Sentieys, Daniel Ménard
2016 J jnl
IEEE Access
Muhammad Mahtab Alam, Elyes Ben Hamida, Olivier Berder, Daniel Ménard, Olivier Sentieys
2016 conf
ISVLSI
Rengarajan Ragavan, Cédric Killian, Olivier Sentieys
2016 conf
OFC
Trung-Hien Nguyen, Pascal Scalart, Mathilde Gay, Laurent Bramerie, Christophe Peucheret, Olivier Sentieys, Jean-Claude Simon, Michel Joindot
2016 conf
ICC
Trung-Hien Nguyen, Pascal Scalart, Mathilde Gay, Laurent Bramerie, Christophe Peucheret, Ti Nguyen-Ti, Matthieu Gautier, Olivier Sentieys, Jean-Claude Simon, Michel Joindot
2016 conf
MCSoC
Baptiste Roux, Matthieu Gautier, Olivier Sentieys, Steven Derrien
2016 B conf
FPL
Christophe Huriaux, Olivier Sentieys, Russell Tessier
2016 A conf
DATE
Benjamin Barrois, Karthick Parashar, Olivier Sentieys
2016 J jnl
J. Low Power Electron.
Robin Bonamy, Sébastien Bilavarn, Daniel Chillet, Olivier Sentieys
2015 conf
SiPhotonics@HiPEAC
Jiating Luo, Cédric Killian, Sébastien Le Beux, Daniel Chillet, Hui Li, Ian O'Connor, Olivier Sentieys
2015 conf
EUSIPCO
Fernando Cladera Ojeda, Matthieu Gautier, Olivier Sentieys
2015 conf
MCSoC
Johanna Sepúlveda, Sébastien Le Beux, Jiating Luo, Cédric Killian, Daniel Chillet, Hui Li, Ian O'Connor, Olivier Sentieys
2015 A conf
DATE
Christophe Huriaux, Antoine Courtay, Olivier Sentieys
2015 conf
SAMOS
Benedikt Janßen, Fynn Schwiegelshohn, Martijn Koedam, François Duhem, Leonard Masing, Stephan Werner, Christophe Huriaux, Antoine Courtay, Emilie Wheatley, Kees Goossens, Fabrice Lemonnier, Philippe Millet, Jürgen Becker, Olivier Sentieys, Michael Hübner
2015 conf
ISVLSI
Fernando Cladera Ojeda, Matthieu Gautier, Olivier Sentieys
2015 J jnl
ACM J. Emerg. Technol. Comput. Syst.
Trong Nhan Le, Alain Pegatoquet, Olivier Berder, Olivier Sentieys, Arnaud Carer
2015 conf
ICC
Trung-Hien Nguyen, Pascal Scalart, Michel Joindot, Mathilde Gay, Laurent Bramerie, Christophe Peucheret, Arnaud Carer, Jean-Claude Simon, Olivier Sentieys
2015 conf
NEWCAS
Rengarajan Ragavan, Cédric Killian, Olivier Sentieys
2015 C conf
BSN
Alexis Aulery, Jean-Philippe Diguet, Christian Roland, Olivier Sentieys
2015 conf
OFC
Trung-Hien Nguyen, Mathilde Gay, Laurent Bramerie, Kevin Lengle, Christophe Peucheret, Olivier Sentieys, Jean-Claude Simon, Alexandre Bazin, Rama Raj, Fabrice Raineri
2015 conf
NEWCAS
Florent Berthier, Edith Beigné, Pascal Vivet, Olivier Sentieys
2015 conf
IPSN
Alexis Aulery, Christian Roland, Jean-Philippe Diguet, Zhongwei Zheng, Olivier Sentieys, Pascal Scalart
2015 conf
PerCom Workshops
Xuan-Chien Le, Baptiste Vrigneau, Olivier Sentieys
2014 J jnl
EURASIP J. Adv. Signal Process.
Ganda Stéphane Ouedraogo, Matthieu Gautier, Olivier Sentieys
2014 conf
ENSsys@SenSys
Trong Nhan Le, Alain Pegatoquet, Olivier Berder, Olivier Sentieys
2014 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Karthick Nagaraj Parashar, Daniel Ménard, Olivier Sentieys
2014 C conf
DSD
Matthieu Gautier, Ganda Stéphane Ouedraogo, Olivier Sentieys
2014 J jnl
Microprocess. Microsystems
Syed M. A. H. Jafri, Stanislaw J. Piestrak, Olivier Sentieys, Sébastien Pillement
2014 Misc conf
FCCM
Christophe Huriaux, Olivier Sentieys, Russell Tessier
2014 B conf
FPL
Christophe Huriaux, Olivier Sentieys, Russell Tessier
2014 conf
CrownCom
Ganda Stéphane Ouedraogo, Matthieu Gautier, Olivier Sentieys
2014 conf
ICTON
Trung-Hien Nguyen, Fausto Gomez-Agis, Mathilde Gay, Luiz Anet Neto, Pascal Scalart, Christophe Peucheret, Michel Joindot, Olivier Sentieys, Jean-Claude Simon, Laurent Bramerie
2014 Misc conf
FCCM
Vivek D. Tovinakere, Olivier Sentieys, Steven Derrien, Christophe Huriaux
2014 J jnl
Microprocess. Microsystems
Robin Bonamy, Sébastien Bilavarn, Daniel Chillet, Olivier Sentieys
2014 B conf
WCNC
Le Quang Vinh Tran, Olivier Berder, Olivier Sentieys
2014 A conf
ICCAD
Gaël Deest, Tomofumi Yuki, Olivier Sentieys, Steven Derrien
2013 conf
VTC Spring
Pramod P. Udupa, Olivier Sentieys, Pascal Scalart
2013 conf
ICC
Pramod P. Udupa, Olivier Sentieys, Pascal Scalart
2013 B conf
GLOBECOM
Duc-Long Nguyen, Le Quang Vinh Tran, Olivier Berder, Olivier Sentieys
2013 A conf
ICCAD
Karthick Parashar, Daniel Ménard, Olivier Sentieys
2013 conf
ARCS Workshops
Trong Nhan Le, Olivier Sentieys, Olivier Berder, Alain Pegatoquet, Cécile Belleudy
2013 conf
VTC Spring
Vaibhav Bhatnagar, Ganda Stéphane Ouedraogo, Matthieu Gautier, Arnaud Carer, Olivier Sentieys
2013 J jnl
Microprocess. Microsystems
Timo Stripf, Oliver Oey, Thomas Bruckschlögl, Jürgen Becker, Gerard K. Rauwerda, Kim Sunesen, George Goulas, Panayiotis Alefragis, Nikolaos S. Voros, Steven Derrien, Olivier Sentieys, Nikolaos Kavvadias, Grigoris Dimitroulakos, Kostas Masselos, Dimitrios Kritharidis, Nikolaos Mitas, Thomas Perschke
2013 C conf
DSD
Muhammad Adeel Pasha, Steven Derrien, Olivier Sentieys
2013 B conf
PIMRC
Trong Nhan Le, Alain Pegatoquet, Olivier Sentieys, Olivier Berder, Cécile Belleudy
2013 B conf
PIMRC
Ruifeng Zhang, Olivier Berder, Olivier Sentieys
2013 C conf
SCAM
Antoine Floch, Tomofumi Yuki, Ali El Moussawi, Antoine Morvan, Kevin J. M. Martin, Maxime Naullet, Mythri Alle, Ludovic L'Hours, Nicolas Simon, Steven Derrien, François Charot, Christophe Wolinski, Olivier Sentieys
2013 Misc conf
ICNC
Amine Didioui, Carolynn Bernier, Dominique Morche, Olivier Sentieys
2013 conf
ENSSys@SenSys
Trong Nhan Le, Alain Pegatoquet, Olivier Berder, Olivier Sentieys
2013 conf
ARCS Workshops
Muhammad Mahtab Alam, Olivier Berder, Daniel Ménard, Olivier Sentieys
2013 J jnl
EURASIP J. Wirel. Commun. Netw.
Le Quang Vinh Tran, Olivier Berder, Olivier Sentieys
2013 conf
MWSCAS
Amine Didioui, Carolynn Bernier, Dominique Morche, Olivier Sentieys
2013 conf
ARCS Workshops
Florian Broekaert, Amine Didioui, Carolynn Bernier, Olivier Sentieys
2013 conf
ENSSys@SenSys
Trong Nhan Le, Michele Magno, Alain Pegatoquet, Olivier Berder, Olivier Sentieys, Emanuel M. Popovici
2013 J jnl
Tech. Sci. Informatiques
Jean-Charles Naud, Daniel Ménard, Olivier Sentieys
2012 conf
CSE
Timo Stripf, Oliver Oey, Thomas Bruckschlögl, Ralf König, George Goulas, Panayiotis Alefragis, Nikolaos S. Voros, Jordy Potman, Kim Sunesen, Steven Derrien, Olivier Sentieys, Jürgen Becker
2012 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Jean-Charles Naud, Daniel Ménard, Gabriel Caffarena, Olivier Sentieys
2012 conf
ReCoSoC
Timo Stripf, Oliver Oey, Thomas Bruckschlögl, Ralf König, Michael Hübner, Jürgen Becker, Gerard K. Rauwerda, Kim Sunesen, Nikolaos Kavvadias, Grigoris Dimitroulakos, Kostas Masselos, Dimitrios Kritharidis, Nikolaos Mitas, George Goulas, Panayiotis Alefragis, Nikolaos S. Voros, Steven Derrien, Daniel Ménard, Olivier Sentieys, Diana Göhringer, Thomas Perschke
2012 A* conf
DAC
Vivek D. Tovinakere, Olivier Sentieys, Steven Derrien
2012 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Romuald Rocher, Daniel Ménard, Pascal Scalart, Olivier Sentieys
2012 conf
DASIP
Daniel Ménard, Romuald Rocher, Olivier Sentieys, Nicolas Simon, Laurent-Stéphane Didier, Thibault Hilaire, Benoit Lopez, Eric Goubault, Sylvie Putot, Franck Védrine, Amine Najahi, Guillaume Revy, L. Fangain, Christian Samoyeau, Fabrice Lemonnier, Christophe Clienti
2012 J jnl
Ad Hoc Networks
Ruifeng Zhang, Olivier Berder, Jean-Marie Gorce, Olivier Sentieys
2012 C conf
DSD
Jürgen Becker, Timo Stripf, Oliver Oey, Michael Hübner, Steven Derrien, Daniel Ménard, Olivier Sentieys, Gerard K. Rauwerda, Kim Sunesen, Nikolaos Kavvadias, Kostas Masselos, George Goulas, Panayiotis Alefragis, Nikolaos S. Voros, Dimitrios Kritharidis, Nikolaos Mitas, Diana Göhringer
2012 conf
ICSAMOS
George Goulas, Panayiotis Alefragis, Nikolaos S. Voros, Christos Valouxis, Christos Gogos, Nikolaos Kavvadias, Grigoris Dimitroulakos, Kostas Masselos, Diana Göhringer, Steven Derrien, Daniel Ménard, Olivier Sentieys, Michael Hübner, Timo Stripf, Oliver Oey, Jürgen Becker, Gerard K. Rauwerda, Kim Sunesen, Dimitrios Kritharidis, Nikolaos Mitas
2012 conf
DASIP
Olivier Berder, Olivier Sentieys, Trong Nhan Le, R. Fontaine, Alain Pegatoquet, Cécile Belleudy, Michel Auguin, William Tatinian, Gilles Jacquemod, Florian Broekaert, Amine Didioui, Carolynn Bernier, Karim Ben Chehida, Sylvain Bourdel, Hervé Barthélemy, P. Ciais, Chris Barratt
2012 J jnl
J. Electr. Comput. Eng.
Daniel Ménard, Nicolas Hervé, Olivier Sentieys, Hai-Nam Nguyen
2012 conf
ISWCS
Amine Didioui, Carolynn Bernier, Dominique Morche, Olivier Sentieys
2012 C conf
BSN
Muhammad Mahtab Alam, Olivier Berder, Daniel Ménard, Olivier Sentieys
2012 conf
GreenCom
Trong Nhan Le, Olivier Sentieys, Olivier Berder, Alain Pegatoquet, Cécile Belleudy
2012 conf
ReConFig
Robin Bonamy, Daniel Chillet, Sébastien Bilavarn, Olivier Sentieys
2012 J jnl
EURASIP J. Adv. Signal Process.
Gabriel Caffarena, Olivier Sentieys, Daniel Ménard, Juan A. López, David Novo
2012 J jnl
ACM Trans. Design Autom. Electr. Syst.
Muhammad Adeel Pasha, Steven Derrien, Olivier Sentieys
2012 J jnl
IEEE J. Emerg. Sel. Topics Circuits Syst.
Muhammad Mahtab Alam, Olivier Berder, Daniel Ménard, Olivier Sentieys
2012 conf
ICSAMOS
Fabrice Lemonnier, Philippe Millet, Gabriel Marchesan Almeida, Michael Hübner, Jürgen Becker, Sébastien Pillement, Olivier Sentieys, Martijn Koedam, Shubhendu Sinha, Kees Goossens, Christian Piguet, Marc-Nicolas Morgan, Romain Lemaire
2011 J jnl
EURASIP J. Embed. Syst.
Muhammad Mahtab Alam, Olivier Berder, Daniel Ménard, Thomas Anger, Olivier Sentieys
2011 J jnl
J. Low Power Electron.
Vivek D. Tovinakere, Olivier Sentieys, Steven Derrien
2011 conf
ARCS Workshops
Muhammad Mahtab Alam, Olivier Berder, Daniel Ménard, Olivier Sentieys
2011 J jnl
IEEE Trans. Intell. Transp. Syst.
Tuan-Duc Nguyen, Olivier Berder, Olivier Sentieys
2011 C conf
DDECS
Muhammad Moazam Azeem, Stanislaw J. Piestrak, Olivier Sentieys, Sébastien Pillement
2011 conf
EUSIPCO
Jean-Charles Naud, Quentin L. Meunier, Daniel Ménard, Olivier Sentieys
2011 conf
DASIP
Matthieu Texier, Raphaël David, Karim Ben Chehida, Olivier Sentieys
2011 J jnl
EURASIP J. Wirel. Commun. Netw.
Ruifeng Zhang, Jean-Marie Gorce, Olivier Berder, Olivier Sentieys
2011 B conf
WCNC
Le Quang Vinh Tran, Olivier Berder, Olivier Sentieys
2011 conf
EUSIPCO
Hai-Nam Nguyen, Daniel Ménard, Olivier Sentieys
2011 conf
IJCCI (NCTA)
Antoine Eiche, Daniel Chillet, Sébastien Pillement, Olivier Sentieys
2011 J jnl
SIGARCH Comput. Archit. News
Robin Bonamy, Daniel Chillet, Olivier Sentieys, Sébastien Bilavarn
2011 J jnl
J. Syst. Archit.
Daniel Chillet, Antoine Eiche, Sébastien Pillement, Olivier Sentieys
2011 conf
CCNC
Le Quang Vinh Tran, Olivier Berder, Olivier Sentieys
2011 conf
ReCoSoC
Robin Bonamy, Daniel Chillet, Olivier Sentieys, Sébastien Bilavarn
2011 Misc conf
VLSI Design
Vivek D. Tovinakere, Olivier Sentieys, Steven Derrien
2010 Misc conf
VLSI Design
Karthick Parashar, Romuald Rocher, Daniel Ménard, Olivier Sentieys
2010 conf
DASIP
Cecile Beaumin, Olivier Sentieys, Emmanuel Casseau, Arnaud Carer
2010 A* conf
DAC
Muhammad Adeel Pasha, Steven Derrien, Olivier Sentieys
2010 J jnl
Digit. Signal Process.
Romuald Rocher, Daniel Ménard, Olivier Sentieys, Pascal Scalart
2010 Misc conf
ICASSP
Karthick Parashar, Romuald Rocher, Daniel Ménard, Olivier Sentieys
2010 J jnl
IEEE Commun. Lett.
Stanislaw J. Piestrak, Sébastien Pillement, Olivier Sentieys
2010 conf
VTC Spring
Tuan-Duc Nguyen, Olivier Berder, Olivier Sentieys
2010 conf
ISQED
Syed M. A. H. Jafri, Stanislaw J. Piestrak, Olivier Sentieys, Sébastien Pillement
2010 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Stanislaw J. Piestrak, Sébastien Pillement, Olivier Sentieys
2010 conf
EUSIPCO
Karthick Parashar, Daniel Ménard, Romuald Rocher, Olivier Sentieys
2010 A conf
ICCAD
Karthick Parashar, Daniel Ménard, Romuald Rocher, Olivier Sentieys, David Novo, Francky Catthoor
2010 conf
ARCS Workshops
Olivier Berder, Olivier Sentieys
2010 conf
EUSIPCO
Daniel Ménard, David Novo, Romuald Rocher, Francky Catthoor, Olivier Sentieys
2010 J jnl
J. Low Power Electron.
Antoine Courtay, Johann Laurent, Olivier Sentieys
2010 J jnl
Microelectron. J.
Sébastien Pillement, Olivier Sentieys, Jean-Marc Philippe
2010 C conf
DSD
Muhammad Adeel Pasha, Steven Derrien, Olivier Sentieys
2010 conf
DASIP
Antoine Eiche, Daniel Chillet, Sébastien Pillement, Olivier Sentieys
2009 conf
EUSIPCO
Hai-Nam Nguyen, Daniel Ménard, Olivier Sentieys
2009 C conf
ISCAS
Hai-Nam Nguyen, Daniel Ménard, Olivier Sentieys
2009 conf
ICC
Quoc-Tuong Ngo, Olivier Berder, Baptiste Vrigneau, Olivier Sentieys
2009 C conf
ISCAS
Renaud Santoro, Olivier Sentieys, Sébastien Roy
2009 conf
ISVLSI
Renaud Santoro, Olivier Sentieys, Sébastien Roy
2009 conf
ARC
Daniel Ménard, Emmanuel Casseau, Shafqat Khan, Olivier Sentieys, Stéphane Chevobbe, Stéphane Guyetant, Raphaël David
2009 C conf
ISCAS
Muhammad Adeel Pasha, Steven Derrien, Olivier Sentieys
2009 C conf
DSD
Julien Lallet, Sébastien Pillement, Olivier Sentieys
2008 J jnl
EURASIP J. Embed. Syst.
Daniel Ménard, Romain Serizel, Romuald Rocher, Olivier Sentieys
2008 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Daniel Ménard, Romuald Rocher, Olivier Sentieys
2008 conf
CACSD
Thibault Hilaire, Daniel Ménard, Olivier Sentieys
2008 J jnl
EURASIP J. Embed. Syst.
Sébastien Pillement, Olivier Sentieys, Raphaël David
2008 conf
VTC Spring
Tuan-Duc Nguyen, Olivier Berder, Olivier Sentieys
2008 conf
SBCCI
Julien Lallet, Sébastien Pillement, Olivier Sentieys
2008 J jnl
J. Low Power Electron.
Antoine Courtay, Olivier Sentieys, Johann Laurent, Nathalie Julien
2008 conf
ICC
Tuan-Duc Nguyen, Olivier Berder, Olivier Sentieys
2008 conf
PATMOS
Antoine Courtay, Johann Laurent, Olivier Sentieys, Nathalie Julien
2008 J jnl
Tech. Sci. Informatiques
Daniel Chillet, Raphaël David, Erwan Grâce, Olivier Sentieys
2007 B conf
IJCNN
Daniel Chillet, Sébastien Pillement, Olivier Sentieys
2007 conf
ARC
Nicolas Hervé, Daniel Ménard, Olivier Sentieys
2007 conf
EUSIPCO
Romuald Rocher, Daniel Ménard, Olivier Sentieys, Pascal Scalart
2007 conf
VTC Spring
Tuan-Duc Nguyen, Olivier Berder, Olivier Sentieys
2007 conf
EUSIPCO
Imene Benkermi, Daniel Chillet, Sébastien Pillement, Olivier Sentieys
2007 conf
ARCS
Alexey Kupriyanov, Frank Hannig, Dmitrij Kissler, Jürgen Teich, Julien Lallet, Olivier Sentieys, Sébastien Pillement
2007 conf
EUSIPCO
Thibault Hilaire, Daniel Ménard, Olivier Sentieys
2006 C conf
ISCAS
Jean-Marc Philippe, E. Kinvi-Boh, Sébastien Pillement, Olivier Sentieys
2006 conf
ISQED
Jean-Marc Philippe, Sébastien Pillement, Olivier Sentieys
2006 conf
ReCoSoC
Stéphane Chevobbe, Raphaël David, Frédéric Blanc, Thierry Collette, Olivier Sentieys
2006 J jnl
EURASIP J. Embed. Syst.
Romuald Rocher, Daniel Ménard, Nicolas Hervé, Olivier Sentieys
2006 C conf
ISCAS
Romuald Rocher, Nicolas Hervé, Daniel Ménard, Olivier Sentieys
2006 J jnl
EURASIP J. Adv. Signal Process.
Daniel Ménard, Daniel Chillet, Olivier Sentieys
2005 conf
ISCAS (5)
Jean-Marc Philippe, Sébastien Pillement, Olivier Sentieys
2005 conf
ICASSP (5)
Romuald Rocher, Daniel Ménard, Olivier Sentieys, Pascal Scalart
2005 conf
ReCoSoC
Frank Hannig, Hritam Dutta, Alexey Kupriyanov, Jürgen Teich, Rainer Schaffer, Sebastian Siegel, Renate Merker, Ronan Keryell, Bernard Pottier, Daniel Chillet, Daniel Ménard, Olivier Sentieys
2004 conf
ICASSP (5)
Romuald Rocher, Daniel Ménard, Olivier Sentieys, Pascal Scalart
2004 conf
EUSIPCO
Daniel Ménard, Romuald Rocher, Pascal Scalart, Olivier Sentieys
2004 conf
SAMOS
Joel Cambonie, Sylvain Guérin, Ronan Keryell, Loïc Lagadec, Bernard Pottier, Olivier Sentieys, Bernt Weber, Samar Yazdani
2004 C conf
SCOPES
Daniel Ménard, Olivier Sentieys
2003 J jnl
Tech. Sci. Informatiques
Daniel Ménard, Taofik Saïdi, Daniel Chillet, Olivier Sentieys
2003 conf
ISMVL
E. Kinvi-Boh, M. Aline, Olivier Sentieys, Edgar "Dan" Olson
2002 B conf
FPL
Raphaël David, Daniel Chillet, Sébastien Pillement, Olivier Sentieys
2002 Misc conf
ICASSP
Daniel Ménard, Olivier Sentieys
2002 A conf
DATE
Daniel Ménard, Olivier Sentieys
2002 Misc conf
CASES
Daniel Ménard, Daniel Chillet, François Charot, Olivier Sentieys
2002 conf
ISQED
Sébastien Pillement, Daniel Chillet, Olivier Sentieys
2002 A conf
IPDPS
Raphaël David, Daniel Chillet, Sébastien Pillement, Olivier Sentieys
2002 conf
EUSIPCO
Daniel Ménard, Philippe Quemerais, Olivier Sentieys
2002 Misc conf
ICASSP
Raphaël David, Daniel Chillet, Sébastien Pillement, Olivier Sentieys
2001 C conf
VLSI-SOC
Raphaël David, Daniel Chillet, Sébastien Pillement, Olivier Sentieys
2000 J jnl
J. VLSI Signal Process.
Jean-Philippe Diguet, Daniel Chillet, Olivier Sentieys
2000 C conf
ISCAS
Jean-Gabriel Cousin, Olivier Sentieys, Daniel Chillet
2000 J jnl
IEEE Trans. Educ.
Hélène Dubois, Olivier Sentieys, Daniel Chillet, Jean Luc Philippe
1999 conf
ISCAS (6)
J. O. Dedou, Daniel Chillet, Olivier Sentieys
1999 conf
Great Lakes Symposium on VLSI
Daniel Chillet, Olivier Sentieys, Michel Corazza
1998 conf
EUSIPCO
J. Okito Dedou, Daniel Chillet, Olivier Sentieys
1998 conf
EUSIPCO
Stanislaw J. Piestrak, Fabrice Pedron, Olivier Sentieys
1997 Misc conf
ICASSP
Jean-Philippe Diguet, Olivier Sentieys, Daniel Chillet, Jean Luc Philippe
1996 conf
EUSIPCO
Jean Luc Philippe, Daniel Chillet, Olivier Sentieys, Jean-Philippe Diguet
1994 conf
CODES
Michel Auguin, Mohamed Belhadj, Judith Benzakki, C. Carrière, Guy Durrieu, Thierry Gautier, Michel Israël, Paul Le Guernic, Michel Lemaître, E. Martin, Patrice Quinton, Laurence Rideau, Frédéric Rousseau, Olivier Sentieys
1993 conf
EURO-DAC
Eric Martin, Olivier Sentieys, Hélène Dubois, Jean Luc Philippe
tests/integration/test_elf_extractors.py
← Index tests/integration/test_elf_extractors.py python
"""
Integration tests for ELF-specific extractors.
"""
import pytest
from unittest.mock import Mock, patch, MagicMock

pytestmark = [pytest.mark.integration, pytest.mark.elf]


# ============================================================================
# ELFFeaturesExtractor Tests
# ============================================================================

class TestELFFeaturesExtractor:
    """Tests for ELFFeaturesExtractor class."""

    def test_extract_valid_elf(self, elf_binary_path, mock_logger):
        """Test extracting features from valid ELF file."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor
        from redb.models.dataclasses import ELFFeatures

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert isinstance(result, ELFFeatures)

    def test_extract_header_data(self, elf_binary_path, mock_logger):
        """Test ELF header data extraction."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            # Check header fields
            assert isinstance(result.ei_class, int)
            assert isinstance(result.ei_data, int)
            assert isinstance(result.e_type, int)
            assert isinstance(result.e_machine, int)
            assert isinstance(result.e_entry, int)

    def test_extract_human_readable_strings(self, elf_binary_path, mock_logger):
        """Test human-readable string fields."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert result.ei_class_str in ['32-bit', '64-bit', 'unknown']
            assert result.ei_data_str in ['Little-endian', 'Big-endian', 'unknown']
            assert result.e_type_str is not None
            assert result.e_machine_str is not None

    def test_extract_security_properties(self, elf_binary_path, mock_logger):
        """Test security property extraction."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            # Security flags should be 0 or 1
            assert result.is_pie in [0, 1]
            assert result.has_canary in [0, 1]
            assert result.has_nx in [0, 1]
            assert result.has_relro in [0, 1]
            assert result.has_fortify in [0, 1]

    def test_extract_counts(self, elf_binary_path, mock_logger):
        """Test section/segment/symbol counts."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert result.number_of_segments >= 0
            assert result.number_of_sections >= 0
            assert result.number_of_symbols >= 0
            assert result.number_of_dynamic_symbols >= 0
            assert result.number_of_relocations >= 0
            assert result.number_of_dependencies >= 0

    def test_extract_build_info(self, elf_binary_path, mock_logger):
        """Test build information extraction."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            # Build ID may or may not be present
            if result.build_id is not None:
                assert isinstance(result.build_id, str)
            assert result.gnu_hash_present in [0, 1]
            assert result.has_debug_info in [0, 1]

    def test_extract_invalid_elf(self, pe_binary_path, mock_logger):
        """Test extraction with non-ELF file."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(pe_binary_path, mock_logger)

            result = extractor.extract()

            # Should return None for invalid ELF
            assert result is None


# ============================================================================
# ELFSectionExtractor Tests
# ============================================================================

class TestELFSectionExtractor:
    """Tests for ELFSectionExtractor class."""

    def test_extract_sections(self, elf_binary_path, mock_logger):
        """Test section extraction."""
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSectionExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert isinstance(result, list)
            assert len(result) > 0

    def test_section_properties(self, elf_binary_path, mock_logger):
        """Test section property extraction."""
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor
        from redb.models.dataclasses import ELFSection

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSectionExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                section = result[0]
                assert isinstance(section, ELFSection)
                assert section.section_name is not None
                assert isinstance(section.section_type, int)
                assert isinstance(section.section_flags, int)
                assert section.section_entropy >= 0

    def test_section_hashes(self, elf_binary_path, mock_logger):
        """Test section hash computation."""
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSectionExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                for section in result:
                    if section.section_sha256:
                        assert len(section.section_sha256) == 64
                    if section.section_md5:
                        assert len(section.section_md5) == 32


# ============================================================================
# ELFSegmentExtractor Tests
# ============================================================================

class TestELFSegmentExtractor:
    """Tests for ELFSegmentExtractor class."""

    def test_extract_segments(self, elf_binary_path, mock_logger):
        """Test segment extraction."""
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSegmentExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert isinstance(result, list)

    def test_segment_properties(self, elf_binary_path, mock_logger):
        """Test segment property extraction."""
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor
        from redb.models.dataclasses import ELFSegment

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSegmentExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                segment = result[0]
                assert isinstance(segment, ELFSegment)
                assert isinstance(segment.segment_type, int)
                assert isinstance(segment.segment_flags, int)


# ============================================================================
# ELFSymbolExtractor Tests
# ============================================================================

class TestELFSymbolExtractor:
    """Tests for ELFSymbolExtractor class."""

    def test_extract_symbols(self, elf_binary_path, mock_logger):
        """Test symbol extraction."""
        from redb.extractors.elf_extractors.elf_symbols import ELFSymbolExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSymbolExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if stripped
            if result is not None:
                assert isinstance(result, list)

    def test_symbol_properties(self, elf_binary_path, mock_logger):
        """Test symbol property extraction."""
        from redb.extractors.elf_extractors.elf_symbols import ELFSymbolExtractor
        from redb.models.dataclasses import ELFSymbol

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSymbolExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                symbol = result[0]
                assert isinstance(symbol, ELFSymbol)
                assert symbol.symbol_name is not None
                assert isinstance(symbol.symbol_type, int)
                assert isinstance(symbol.symbol_bind, int)


# ============================================================================
# ELFImportExtractor Tests
# ============================================================================

class TestELFImportExtractor:
    """Tests for ELFImportExtractor class."""

    def test_extract_imports(self, elf_binary_path, mock_logger):
        """Test import extraction."""
        from redb.extractors.elf_extractors.elf_imports import ELFImportExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFImportExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if no imports
            if result is not None:
                assert hasattr(result, 'elf_imports_total')

    def test_import_functions(self, elf_binary_path, mock_logger):
        """Test import function extraction."""
        from redb.extractors.elf_extractors.elf_imports import ELFImportExtractor
        from redb.models.dataclasses import ELFImport

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFImportExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None:
                assert isinstance(result, ELFImport)
                assert isinstance(result.elf_imports_total, int)


# ============================================================================
# ELFExportExtractor Tests
# ============================================================================

class TestELFExportExtractor:
    """Tests for ELFExportExtractor class."""

    def test_extract_exports(self, elf_binary_path, mock_logger):
        """Test export extraction."""
        from redb.extractors.elf_extractors.elf_exports import ELFExportExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFExportExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if no exports
            if result is not None:
                assert hasattr(result, 'elf_exports_total')

    def test_export_functions(self, elf_binary_path, mock_logger):
        """Test export function extraction."""
        from redb.extractors.elf_extractors.elf_exports import ELFExportExtractor
        from redb.models.dataclasses import ELFExport

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFExportExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None:
                assert isinstance(result, ELFExport)


# ============================================================================
# ELFDependencyExtractor Tests
# ============================================================================

class TestELFDependencyExtractor:
    """Tests for ELFDependencyExtractor class."""

    def test_extract_dependencies(self, elf_binary_path, mock_logger):
        """Test dependency extraction."""
        from redb.extractors.elf_extractors.elf_dependencies import ELFDependencyExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFDependencyExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if no dependencies
            if result is not None:
                assert isinstance(result, list)

    def test_dependency_properties(self, elf_binary_path, mock_logger):
        """Test dependency property extraction."""
        from redb.extractors.elf_extractors.elf_dependencies import ELFDependencyExtractor
        from redb.models.dataclasses import ELFDependency

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFDependencyExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                dep = result[0]
                assert isinstance(dep, ELFDependency)
                assert dep.dependency_name is not None


# ============================================================================
# ELFRelocationExtractor Tests
# ============================================================================

class TestELFRelocationExtractor:
    """Tests for ELFRelocationExtractor class."""

    def test_extract_relocations(self, elf_binary_path, mock_logger):
        """Test relocation extraction."""
        from redb.extractors.elf_extractors.elf_relocations import ELFRelocationExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFRelocationExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if no relocations
            if result is not None:
                assert isinstance(result, list)

    def test_relocation_properties(self, elf_binary_path, mock_logger):
        """Test relocation property extraction."""
        from redb.extractors.elf_extractors.elf_relocations import ELFRelocationExtractor
        from redb.models.dataclasses import ELFRelocation

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFRelocationExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                reloc = result[0]
                assert isinstance(reloc, ELFRelocation)
                assert isinstance(reloc.relocation_offset, int)
                assert isinstance(reloc.relocation_type, int)


# ============================================================================
# ELFNotesExtractor Tests
# ============================================================================

class TestELFNotesExtractor:
    """Tests for ELFNotesExtractor class."""

    def test_extract_notes(self, elf_binary_path, mock_logger):
        """Test notes extraction."""
        from redb.extractors.elf_extractors.elf_notes import ELFNotesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFNotesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            # May be None if no notes
            if result is not None:
                assert isinstance(result, list)

    def test_note_properties(self, elf_binary_path, mock_logger):
        """Test note property extraction."""
        from redb.extractors.elf_extractors.elf_notes import ELFNotesExtractor
        from redb.models.dataclasses import ELFNote

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFNotesExtractor(elf_binary_path, mock_logger)

            result = extractor.extract()

            if result is not None and len(result) > 0:
                note = result[0]
                assert isinstance(note, ELFNote)
                assert note.note_name is not None
                assert isinstance(note.note_type, int)


# ============================================================================
# Integration Tests
# ============================================================================

class TestELFExtractorIntegration:
    """Integration tests for ELF extractors."""

    def test_all_extractors_valid_elf(self, elf_binary_path, mock_logger):
        """Test all ELF extractors with valid ELF file."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            features_ext = ELFFeaturesExtractor(elf_binary_path, mock_logger)
            sections_ext = ELFSectionExtractor(elf_binary_path, mock_logger)
            segments_ext = ELFSegmentExtractor(elf_binary_path, mock_logger)

            features_result = features_ext.extract()
            sections_result = sections_ext.extract()
            segments_result = segments_ext.extract()

            # All should extract something
            assert features_result is not None
            assert sections_result is not None
            assert segments_result is not None

    def test_hash_consistency_across_extractors(self, elf_binary_path, mock_logger):
        """Test that hashes are consistent across all extractors."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            features_ext = ELFFeaturesExtractor(elf_binary_path, mock_logger)
            sections_ext = ELFSectionExtractor(elf_binary_path, mock_logger)

            # Hashes should be the same
            assert features_ext.sha256 == sections_ext.sha256
            assert features_ext.md5 == sections_ext.md5
            assert features_ext.sha1 == sections_ext.sha1

    def test_clickhouse_tables_unique(self, elf_binary_path, mock_logger):
        """Test that each extractor has a unique ClickHouse table."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            features_ext = ELFFeaturesExtractor(elf_binary_path, mock_logger)
            sections_ext = ELFSectionExtractor(elf_binary_path, mock_logger)
            segments_ext = ELFSegmentExtractor(elf_binary_path, mock_logger)

            tables = {
                features_ext.get_clickhouse_table(),
                sections_ext.get_clickhouse_table(),
                segments_ext.get_clickhouse_table(),
            }

            # All tables should be unique
            assert len(tables) == 3


# ============================================================================
# Advanced Binary Tests
# ============================================================================

class TestELFAdvancedBinary:
    """Tests using the hello_advanced binary."""

    def test_advanced_features_extraction(self, elf_advanced_binary_path, mock_logger):
        """Test feature extraction from advanced ELF binary."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_advanced_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert result.number_of_sections > 0

    def test_advanced_sections_extraction(self, elf_advanced_binary_path, mock_logger):
        """Test section extraction from advanced ELF binary."""
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSectionExtractor(elf_advanced_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert len(result) > 0

            # Check for common ELF sections
            section_names = [s.section_name for s in result]
            # Most ELF files have .text section
            assert any('.text' in name for name in section_names)

    def test_advanced_segments_extraction(self, elf_advanced_binary_path, mock_logger):
        """Test segment extraction from advanced ELF binary."""
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSegmentExtractor(elf_advanced_binary_path, mock_logger)

            result = extractor.extract()

            assert result is not None
            assert len(result) > 0


# ============================================================================
# Export Data Tests
# ============================================================================

class TestELFExtractorExportData:
    """Tests for export data preparation."""

    def test_features_prepare_export_clickhouse(self, elf_binary_path, mock_logger):
        """Test ClickHouse export preparation for features."""
        from redb.extractors.elf_extractors.elf_features import ELFFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFFeaturesExtractor(elf_binary_path, mock_logger)
            extractor.extract()

            result = extractor.prepare_export_data("ClickHouseExporter")

            assert result is not None
            data, column_names, column_type_names = result

            assert 'sha256' in column_names
            assert 'ei_class' in column_names
            assert 'e_machine' in column_names
            assert 'is_pie' in column_names

    def test_sections_prepare_export_clickhouse(self, elf_binary_path, mock_logger):
        """Test ClickHouse export preparation for sections."""
        from redb.extractors.elf_extractors.elf_sections import ELFSectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSectionExtractor(elf_binary_path, mock_logger)
            extractor.extract()

            result = extractor.prepare_export_data("ClickHouseExporter")

            if result is not None:
                data, column_names, column_type_names = result
                assert 'section_name' in column_names
                assert 'section_entropy' in column_names

    def test_segments_prepare_export_clickhouse(self, elf_binary_path, mock_logger):
        """Test ClickHouse export preparation for segments."""
        from redb.extractors.elf_extractors.elf_segments import ELFSegmentExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = ELFSegmentExtractor(elf_binary_path, mock_logger)
            extractor.extract()

            result = extractor.prepare_export_data("ClickHouseExporter")

            if result is not None:
                data, column_names, column_type_names = result
                assert 'segment_type' in column_names